中包含了各維度的所有可能組合的交叉表格。
CUBE 運算符在 SELECT 語句的 GROUP BY 子句中指定。該語句的選擇列表應包含維度列和聚合函數表達式。GROUP BY 應指定維度列和關鍵字 WITH CUBE。結果集將包含維度列中各值的所有可能組合,以及與這些維度值組合相匹配的基礎行中的聚合值。
CUBE 和 ROLLUP 之間的區別在于:
CUBE 生成的結果集顯示了所選列中值的所有組合的聚合。
ROLLUP 生成的結果集顯示了所選列中值的某一層次結構的聚合。
看完以上的這段話,悟出了什么沒有?如果沒有,那么……嘿嘿,你的悟性還不夠喲,離“三花棸頂”還早著呢:)。接下來我們再看一段(注意喲,答案馬上就揭曉了):
SELECT 編碼, 倉庫, Sum(數量) as 數量
FROM A
GROUP BY 編碼, 倉庫 WITH ROLLUP
--關鍵就是后面的WITH ROLLUP
--當然,你也可以用WITH CUBE,但是結果會有點不大一樣
可能看完上面這段你還是覺得“云里霧里”,摸不著頭腦。實在不明白也沒關系,自己動手做。
首先:建一個上面所說的A表,輸入幾行數據;
接著:打開你的SQL Server查詢分析器,連上包含你上面所建A表的服務器,選擇包含該表的數據庫;
然后:Copy上面這段SQL 語句,Paste到查詢分析器中,按F5,怎么樣?看到下面出來了什么?是不是和我下面的一樣?
編碼 倉庫 數量
01 A 6
01 B 7
01 NULL 13
02 A 8
02 B 9
02 NULL 17
NULL NULL 30
文章來源于領測軟件測試網 http://www.kjueaiud.com/