狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

SQL Server2000:ROLLUP和CUBE運算符使用

admin
2011年3月13日 0:25 本文熱度 2855
ROLLUP、CUBE運算符和GROUP BY一起使用能在結果集中加入一些額外的統計信息,例如有一張OrderDetail表,結構和數據如下:





例1:統計每個訂單的產品數量。



 程序代碼

select orderid,sum(quantity) as quantity from orderDetail
group by orderid
with rollup

結果集:


如圖所示,ROLLUP統計出了所有訂單的產品數。

例2:統計每個訂單、每種產品的數量。



 程序代碼

select orderid,productid,sum(quantity) as quantity from orderDetail
group by orderid,productid
with rollup

結果集:


如圖所示,ROLLUP統計出了每筆訂單的產品數以及所有訂單的產品數。

例3:統計每個訂單、每種產品的金額。



 程序代碼

select orderid,productid,quantity,sum(price*quantity) as total from orderDetail
group by orderid,productid,quantity
with rollup

結果集:


如圖所示,ROLLUP統計出了每筆訂單的金額以及所有訂單的金額。

例4:當GROUP BY后邊有多個字段時,字段的前后順序不同,結果就會不同,用例2做測試。



 程序代碼

select orderid,productid,sum(quantity) as quantity from orderDetail
group by productid,orderid
with rollup

結果集:


小結

·ROLLUP得緊跟在GROUP BY后邊使用;
·GROUP BY后邊字段的前后順序影響ROLLUP的結果;
·ROLLUP將GROUP BY后邊字段從右到左依次為NULL再匯總其他聚合列的值;

例5:再以例2為例,CUBE運算符結果為例2和例4結果集的并集。



 程序代碼

select orderid,productid,sum(quantity) as quantity from orderDetail
group by orderid,productid
with cube

結果集:


小結

·和ROLLUP運算符不同的是CUBE運算符不受GROUP BY后邊字段的前后順序的影響,CUBE運算符將GROUP BY后邊字段排列組合設置為NULL再匯總其他聚合列的值;

GROUPING函數

GROUPING函數可以判斷列的值是否是ROLLUP、CUBE運算符生成的,若則則函數值為1,否則為0。再來看一個例子:



 程序代碼

select orderid,grouping(orderid) as g1,productid,grouping(productid) as g2,sum(quantity) as quantity from orderDetail
group by orderid,productid
with rollup

結果集:
 

該文章在 2011/3/13 0:25:19 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved