22,210
社区成员
发帖
与我相关
我的任务
分享
create table sales
( empno int,
saledate datetime,
qty int
);
insert into sales values(1,'2007-11-1',10);
insert into sales values(1,'2007-11-1',10);
insert into sales values(1,'2007-11-2',20);
insert into sales values(1,'2007-11-2',20);
insert into sales values(1,'2007-11-3',20);
insert into sales values(1,'2007-11-4',30);
insert into sales values(1,'2007-11-4',30);
insert into sales values(2,'2007-11-1',10);
insert into sales values(2,'2007-11-1',10);
insert into sales values(2,'2007-11-2',20);
insert into sales values(2,'2007-11-2',20);
insert into sales values(2,'2007-11-3',20);
insert into sales values(2,'2007-11-4',30);
insert into sales values(2,'2007-11-4',30);
--begin
select empno,convert(varchar(10),saledate,120) as saledate,
qty=(select sum(qty) from sales where saledate<=a.saledate and empno=a.empno) from sales a
group by empno,saledate
order by empno,saledate
--result
empno saledate qty
----------- ---------- -----------
1 2007-11-01 20
1 2007-11-02 60
1 2007-11-03 80
1 2007-11-04 140
2 2007-11-01 20
2 2007-11-02 60
2 2007-11-03 80
2 2007-11-04 140
(所影响的行数为 8 行)
create table sales
( empno int,
saledate datetime,
qty int
);
insert into sales values(1,'2007-11-1',10);
insert into sales values(1,'2007-11-1',10);
insert into sales values(1,'2007-11-2',20);
insert into sales values(1,'2007-11-2',20);
insert into sales values(1,'2007-11-3',20);
insert into sales values(1,'2007-11-4',30);
insert into sales values(1,'2007-11-4',30);
insert into sales values(2,'2007-11-1',10);
insert into sales values(2,'2007-11-1',10);
insert into sales values(2,'2007-11-2',20);
insert into sales values(2,'2007-11-2',20);
insert into sales values(2,'2007-11-3',20);
insert into sales values(2,'2007-11-4',30);
insert into sales values(2,'2007-11-4',30);
select empno,saledate,(select sum(qty) from sales where empno = b.empno and saledate <= b.saledate)
from(
select distinct empno,convert(char(10),saledate,120) as saledate
from sales a
) b
order by 1,2
drop table sales
/*
empno saledate
----------- ---------- -----------
1 2007-11-01 20
1 2007-11-02 60
1 2007-11-03 80
1 2007-11-04 140
2 2007-11-01 20
2 2007-11-02 60
2 2007-11-03 80
2 2007-11-04 140
(所影响的行数为 8 行)
*/