我想寫一個SQL語句,它將從源表數據創建一個展平的表。這就是我要做的:從源表數據創建一個展平的記錄
- 得到的地位和其數量之和爲訂單ID的組合,PARTID
我試圖與基於案例的表達下面的查詢來實現:
SELECT orderid, partid,
SUM(quantity) as total,
status1 = case [status] when 1 then SUM(quantity) else null end,
status2 = case [status] when 2 then SUM(quantity) else null end,
status3 = case [status] when 3 then SUM(quantity) else null end
FROM partsum
GROUP BY orderid,
partid,
status;
但結果不是我所要求的。我知道我是分組的狀態,但查詢不會將它添加到列表中進行編譯。
@第二個爲我工作。第一個 - 因爲我缺乏T-SQL的經驗 - 無法獲得組記錄(在我的實際代碼中)。爲了更好地理解,我需要學習Over和Partition。我們可以同時使用和,OVER&PARTITION組合嗎? – TheMar 2012-02-27 15:55:54
第一個使用了DISTINCT,並且不能以當前形式使用分組。 – EBarr 2012-02-27 16:07:47
@ EBarr-我的困惑實際上在於PartitionBy PartID是否在select語句的所有其他行上進行分組? – TheMar 2012-02-27 16:16:45