MS SQL-查詢後,再做GROUP BY合併值

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~