如何通过不同的WHERE语句使用SUM和SUBSTRAT



我正在尝试用
dbo_OperacijuTIpai_SK.OperacijuTipaiID = 50求和dbo.OperacijosPard_SK.SumaBePVM,用dbo_OperacijuTIpai_SK.OperacijuTipaiID = 61求减法

有没有比创建两个SUM为_Id = 50_Id = 61的查询然后加入更简单的方法?

SELECT dbo_Partneriai_SK.Pavad, 
Sum(dbo_OperacijosPard_SK.SumaBePVM) AS SumOfSumaBePVM
FROM (dbo_OperacijosPard_SK 
INNER JOIN dbo_Partneriai_SK 
ON dbo_OperacijosPard_SK.PartneriaiId = dbo_Partneriai_SK.PartneriaiId) 
INNER JOIN dbo_OperacijuTipai_SK 
ON dbo_OperacijosPard_SK.OperacijuTipaiId=dbo_OperacijuTipai_SK.OperacijuTipaiId
WHERE (((dbo_OperacijosPard_SK.Data)>#1/1/2021#) 
AND ((dbo_OperacijuTipai_SK.OperacijuTipaiId)=50 
Or (dbo_OperacijuTipai_SK.OperacijuTipaiId)=61))
GROUP BY dbo_Partneriai_SK.Pavad
ORDER BY Sum(dbo_OperacijosPard_SK.SumaBePVM) DESC;
SELECT 
dbo_Partneriai_SK.Pavad
, Sum(case when OperacijuTipaiId=50 then dbo_OperacijosPard_SK.SumaBePVM else 0 end) 
- Sum(case when OperacijuTipaiId=61 then dbo_OperacijosPard_SK.SumaBePVM else 0 end) AS SumOfSumaBePVM
FROM (dbo_OperacijosPard_SK 
INNER JOIN dbo_Partneriai_SK ON dbo_OperacijosPard_SK.PartneriaiId = dbo_Partneriai_SK.PartneriaiId) 
INNER JOIN dbo_OperacijuTipai_SK ON dbo_OperacijosPard_SK.OperacijuTipaiId = dbo_OperacijuTipai_SK.OperacijuTipaiId
WHERE (((dbo_OperacijosPard_SK.Data)>#1/1/2021#) AND ((dbo_OperacijuTipai_SK.OperacijuTipaiId)=50 Or (dbo_OperacijuTipai_SK.OperacijuTipaiId)=61))
GROUP BY dbo_Partneriai_SK.Pavad
ORDER BY Sum(dbo_OperacijosPard_SK.SumaBePVM) DESC;

最新更新