22,209
社区成员
发帖
与我相关
我的任务
分享
SELECT SubContractorID,
SUM(SubContractDollarValue * (IsChangeOrder^1) NoChangeOrderAmount
SUM(SubContractDollarValue * IsChangeOrder) ChangeOrderAmount
FROM tb
GROUP BY SubContractorID
create table tb(SubContractorID int,SubContractDollarValue int,IsChangeOrder int)
insert into tb values(125,50.00 ,1)
insert into tb values(125,125.00 ,1)
insert into tb values(125,100.00 ,0)
insert into tb values(13 ,6.00 ,1)
insert into tb values(13 ,5000.00 ,0)
insert into tb values(13 ,500.00 ,1)
insert into tb values(13 ,500.00 ,0)
go
select SubContractorID,
sum(case IsChangeOrder when 0 then SubContractDollarValue else 0 end) NotChangeOrderAmount,
sum(case IsChangeOrder when 1 then SubContractDollarValue else 0 end) ChangeOrderAmount
from tb
group by SubContractorID
order by SubContractorID desc
drop table tb
/*
SubContractorID NotChangeOrderAmount ChangeOrderAmount
--------------- -------------------- -----------------
125 100 175
13 5500 506
(所影响的行数为 2 行)
*/
select SubContractorID,
sum(case IsChangeOrder when 0 then SubContractDollarValue else 0 end) NotChangeOrderAmount,
sum(case IsChangeOrder when 1 then SubContractDollarValue else 0 end) ChangeOrderAmount
from tb
group by SubContractorID
select
[SubContractorID],
[NotChangeOrderAmount]=sum(case when IsChangeOrder =0 then SubContractDollarValue else 0 end),
[ChangeOrderAmount]=sum(case when IsChangeOrder =1 then SubContractDollarValue else 0 end)
from
t
group by SubContractorID
select
SubContractorID,
sum(case when IsChangeOrder=0 then SubContractDollarValue else 0 end) as NotChangeOrderAmount,
sum(case when IsChangeOrder=1 then SubContractDollarValue else 0 end) as ChangeOrderAmount
from 表
group by SubContractorID