[英]Sum of sums then Group by?
无法弄清楚如何制定此公式,然后按年份获得答案。
Select
((Select Sum(#FinancialView2.CONVERTED_AMOUNT)*-1
FROM #FinancialView2
WHERE #FinancialView2."SECTION_NUMBER"=300
AND #FinancialView2.BU_CODE in ('10','11','W0')
GROUP BY FinancialYear)
+
(Select Sum(#FinancialView2.CONVERTED_AMOUNT)*-1
FROM #FinancialView2
WHERE #FinancialView2."SECTION_NUMBER"=400
AND #FinancialView2.BU_CODE in ('10','11','W0')
AND #FinancialView2.DeptCode not in ('403','413')))
/
((Select Sum(#FinancialView2.CONVERTED_AMOUNT)*-1
FROM #FinancialView2
WHERE #FinancialView2."LINE_NUMBER"=110
AND #FinancialView2.BU_CODE in ('10','11','W0'))
+
(Select Sum(#FinancialView2.CONVERTED_AMOUNT)*-1
FROM #FinancialView2
WHERE #FinancialView2."LINE_NUMBER"=115
AND #FinancialView2.BU_CODE in ('10','11','W0'))
+
(Select Sum(#FinancialView2.CONVERTED_AMOUNT)*-1
FROM #FinancialView2
WHERE #FinancialView2."LINE_NUMBER"=120
AND #FinancialView2.BU_CODE in ('10','11','W0'))
+
(Select ISNULL(Sum(#FinancialView2.CONVERTED_AMOUNT)*-1,0)
FROM #FinancialView2
WHERE #FinancialView2."LINE_NUMBER"=125
AND #FinancialView2.BU_CODE in ('10','11','W0')))*-1
我在这里尝试了“分组依据”,但由于明显的原因而无法使用
有什么想法吗?
好像您需要一些条件汇总(仔细检查我是否正确翻译了条件):
Select FinancialYear,
(
Sum(CASE WHEN #FinancialView2."SECTION_NUMBER"=300
THEN #FinancialView2.CONVERTED_AMOUNT ELSE 0 END)*-1
+ Sum(CASE WHEN #FinancialView2."SECTION_NUMBER"=400 AND #FinancialView2.DeptCode not in ('403','413')
THEN #FinancialView2.CONVERTED_AMOUNT ELSE 0 END)*-1
)
/
(
Sum(CASE WHEN #FinancialView2."SECTION_NUMBER"=110
THEN #FinancialView2.CONVERTED_AMOUNT ELSE 0 END)*-1
+ Sum(CASE WHEN #FinancialView2."SECTION_NUMBER"=115
THEN #FinancialView2.CONVERTED_AMOUNT ELSE 0 END)*-1
+ Sum(CASE WHEN #FinancialView2."SECTION_NUMBER"=120
THEN #FinancialView2.CONVERTED_AMOUNT ELSE 0 END)*-1
+ Sum(CASE WHEN #FinancialView2."SECTION_NUMBER"=125
THEN #FinancialView2.CONVERTED_AMOUNT ELSE 0 END)*-1
)
WHERE #FinancialView2.BU_CODE in ('10','11','W0')
GROUP BY FinancialYear
可以进一步简化为:
Select FinancialYear,
(
Sum(CASE WHEN #FinancialView2."SECTION_NUMBER"=300
OR (#FinancialView2."SECTION_NUMBER"=400 AND #FinancialView2.DeptCode not in ('403','413'))
THEN #FinancialView2.CONVERTED_AMOUNT ELSE 0 END)*-1
)
/
(
Sum(CASE WHEN #FinancialView2."SECTION_NUMBER" IN (110, 115, 120, 125)
THEN #FinancialView2.CONVERTED_AMOUNT ELSE 0 END)*-1
)
WHERE #FinancialView2.BU_CODE in ('10','11','W0')
GROUP BY FinancialYear
最后, col*-1
与-col
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.