MS SQL-查詢後,再做GROUP BY合併值
在整理資料時,
針對MS SQL的子查詢又多了深深的感謝。
我們客戶有計算金額的公式,
公式很複雜,
但是難不到我們的MS SQL,
用一堆子查詢去算出對應的金額。
但是,客戶看過後,
希望我們能照一定的規則做合併,
此時想到,
我們在MS SQL可以將原SQL語法包起來,當做來源,
然後再下不同的SQL語法,
例似如下的用法:
SELECT TEMP.A1,SUM(TEMP.SSUM),SUM(TEMP.TOTALSUM)
FROM (
SELECT A1,A2,SUM(M1)AS SSUM,(SELECT SUM(M3) FROM TABLE1) AS TOTALSUM
FROM TABLE1
GROUP BY A1,A2) TEMP
GROUP BY TEMP.A1
雖然這種方式可以解決我們的問題,
但是最好還是用正規化的方法,先處理好原始資料,
或者用程式處理。
用SQL語法處理,很不直覺,
除了原來的設計者,
沒有人懂這串語法的意義,
失去了之後修改的彈性。
自我LV~