sqlserver的Case When 汇总且行转列
create table ta
(name varchar(30) not null,
qty int not null,
cls varchar(2) not null
)
select * from ta
insert into ta values('电脑',20,'进')
insert into ta values('电脑',20,'进')
insert into ta values('电脑',15,'出')
insert into ta values('书桌',10,'进')
insert into ta values('书桌',15,'进')
insert into ta values('书桌',20,'出')
insert into ta values('书桌',5,'出')
select * from ta
--行转列
select a.name,a.cnt,b.cnt,a.cnt-b.cnt from
(select name,cls,sum(qty) cnt from ta group by name,cls having cls='进') a
left join ( select name,cls,sum(qty) cnt from ta group by name,cls having cls='出') b
on a.name=b.name