34,590
社区成员
发帖
与我相关
我的任务
分享
select 月份=convert(varchar(7),rq,120), bydl=min(zdl), bnlj=(select sum(zdl) from tb where CONVERT(VARCHAR(7),RQ,120)<=CONVERT(VARCHAR(7),t.RQ,120))
from tb t
group by convert(varchar(7),rq,120)
2008-07 4851 4851
2008-08 1658 10194
2008-09 2568 12762
DECLARE @TB TABLE(dwid VARCHAR(2), rq SMALLDATETIME, zdl INT)
INSERT @TB
SELECT '01', '2008-09-09', 2568 UNION ALL
SELECT '02', '2008-08-12', 3685 UNION ALL
SELECT '03', '2008-07-06', 4851 UNION ALL
SELECT '04', '2008-08-16', 1658
select convert(varchar(7),m.rq,120) yf , sum(m.zdl) bydl,
(select sum(n.zdl) from @tb n where convert(varchar(7),n.rq,120) <= convert(varchar(7),m.rq,120)) bnlj
from @tb m
group by convert(varchar(7),rq,120)
/*
yf bydl bnlj
------- ----------- -----------
2008-07 4851 4851
2008-08 5343 10194
2008-09 2568 12762
(所影响的行数为 3 行)
*/
DECLARE @TB TABLE(dwid VARCHAR(2), rq SMALLDATETIME, zdl INT)
INSERT @TB
SELECT '01', '2008-09-09', 2568 UNION ALL
SELECT '02', '2008-08-12', 3685 UNION ALL
SELECT '03', '2008-07-06', 4851 UNION ALL
SELECT '04', '2008-08-16', 1658
SELECT CONVERT(VARCHAR(7),RQ,120) AS RQ,
SUM(ZDL) AS BYDL,
BNLJ=(SELECT SUM(ZDL) FROM @TB WHERE CONVERT(VARCHAR(7),RQ,120)<=CONVERT(VARCHAR(7),A.RQ,120))
FROM @TB A
GROUP BY CONVERT(VARCHAR(7),RQ,120)
/*
RQ BYDL BNLJ
------- ----------- -----------
2008-07 4851 4851
2008-08 5343 10194
2008-09 2568 12762
*/
select yf,bydl,
(select sum(zdl) from dlxf where convert(varchar(7),rq,120)<=t.yf) as bnlj
from (
select
convert(varchar(7),rq,120) as yf,
sum(zdl) as bydl
from dlxf
group by convert(varchar(7),rq,120)
) as t