сделать кумулятивную сумму за месяц, используя sql server 2005 - PullRequest
0 голосов
/ 01 апреля 2011

У меня в таблице есть такие данные:

> HourWork  MonthName
> 
> 366.00    May 2010    
> 1000.00   Sep 2010    
> 1704.00   Oct 2010    
> 3000.00   Nov 2010

Теперь я хочу создать хранимую процедуру, чтобы получить результат этого:

> HourWork  MonthName
> 
> 366.00    May 2010    
> 1366.00   Sep 2010    
> 2704.00   Oct 2010    
> 4704.00   Nov 2010

означает получитьзначение следующего месяца и некоторые с данными текущего месяца.

любой дает мне способ, как я могу получить такой результат, используя хранимую процедуру.

1 Ответ

1 голос
/ 01 апреля 2011
CREATE TABLE WorkTimeLog
(
    WTLID       int identity    NOT NULL,
    HourWork    numeric(7,2)    NOT NULL,
    MonthStart  datetime        NOT NULL,
    PRIMARY KEY(WTLID)
)
go

set dateformat dmy;

insert WorkTimeLog values (366.00,  '01-May-2010')
insert WorkTimeLog values (1000.00, '01-Sep-2010')
insert WorkTimeLog values (1704.00, '01-Oct-2010')
insert WorkTimeLog values (3000.00, '01-Nov-2010');
go

select  IsNull((select HourWork from WorkTimeLog where MonthStart = wtl.MonthStart) + (select HourWork from WorkTimeLog where MonthStart = (select MAX(MonthStart) from WorkTimeLog where MonthStart < wtl.MonthStart)), wtl.HourWork) as PairTotal,
        RIGHT(CONVERT(char(11), wtl.MonthStart, 13), 8) as Period
from    WorkTimeLog as wtl 
order   by wtl.MonthStart
go

PairTotal   Period
366.00     May 2010
1366.00   Sep 2010
2704.00   Oct 2010
4704.00   Nov 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...