34,576
社区成员
发帖
与我相关
我的任务
分享
SELECT rdr.CusCode,
sum(case when rdr.cVouchType='430' AND rdr.cWhCode ='001' AND rdr.iDate>='2008-01-01' then rds.iQuantity else 0 end) as InQty,
sum(case when rdr.cVouchType='430' AND rdr.cWhCode ='001' AND rdr.iDate>='2008-01-01' then rds.Weight else 0 end) as InWeight
FROM RdRecord rdr
LEFT JOIN RdRecords rds ON rdr.[ID]=rds.[ID]
WHERE rdr.cWhCode ='001' AND rdr.iDate>='2008-01-01'
GROUP BY rdr.CusCode
--这个是用友的数据库,
--应该这样写
SELECT rdr.CusCode,
sum(ISNULL(rds.iQuantity,0)) as InQty,
sum(ISNULL(rds.Weight,0)) as InWeight
FROM RdRecord rdr
INNER JOIN RdRecords rds ON rdr.[ID]=rds.[ID] AND rdr.cWhCode ='001' AND rdr.iDate>='2008-01-01' AND rdr.cVouchType='430'
GROUP BY rdr.CusCode
先执行的是,where->group by->case
set showplan_text on
go
SELECT rdr.CusCode,
sum(case when rdr.cVouchType='430' AND rdr.cWhCode ='001' AND rdr.iDate>='2008-01-01' then rds.iQuantity else 0 end) as InQty,
sum(case when rdr.cVouchType='430' AND rdr.cWhCode ='001' AND rdr.iDate>='2008-01-01' then rds.Weight else 0 end) as InWeight
FROM RdRecord rdr
LEFT JOIN RdRecords rds ON rdr.[ID]=rds.[ID]
WHERE rdr.cWhCode ='001' AND rdr.iDate>='2008-01-01'
GROUP BY rdr.CusCode