sql rollup用法 小計(jì)匯總
這里介紹sql server2005里面的一個使用實(shí)例:
CREATE TABLE tb(province nvarchar(10),city nvarchar(10),score int)
INSERT tb SELECT '陜西','西安',3
UNION ALL SELECT '陜西','安康',4
UNION ALL SELECT '陜西','漢中',2
UNION ALL SELECT '廣東','廣州',5
UNION ALL SELECT '廣東','珠海',2
UNION ALL SELECT '廣東','東莞',3
UNION ALL SELECT '江蘇','南京',6
UNION ALL SELECT '江蘇','蘇州',1
GO
1、 只有一個匯總
select province as 省,sum(score) as 分?jǐn)?shù) from tb group by province with rollup
結(jié)果:
廣東 10
江蘇 7
陜西 9
NULL 26
結(jié)果: 廣東 10 select province as 省,city as 市,sum(score) as 分?jǐn)?shù) from tb group by province,city with rollup 結(jié)果: 廣東 東莞 3 select province as 省,city as 市,sum(score) as 分?jǐn)?shù),grouping(province) as g_p,grouping(city) as g_c from tb group by province,city with rollup 廣東 東莞 3 0 0 結(jié)果: 廣東 東莞 3
select case when grouping(province)=1 then '合計(jì)' else province end as 省,sum(score) as 分?jǐn)?shù) from tb group by province with rollup
江蘇 7
陜西 9
合計(jì) 26
2、兩級,中間小計(jì)最后匯總
廣東 廣州 5
廣東 珠海 2
廣東 NULL 10
江蘇 南京 6
江蘇 蘇州 1
江蘇 NULL 7
陜西 安康 4
陜西 漢中 2
陜西 西安 3
陜西 NULL 9
NULL NULL 26
結(jié)果:
廣東 廣州 5 0 0
廣東 珠海 2 0 0
廣東 NULL 10 0 1
江蘇 南京 6 0 0
江蘇 蘇州 1 0 0
江蘇 NULL 7 0 1
陜西 安康 4 0 0
陜西 漢中 2 0 0
陜西 西安 3 0 0
陜西 NULL 9 0 1
NULL NULL 26 1 1
select case when grouping(province)=1 then '合計(jì)' else province end 省,
case when grouping(city)=1 and grouping(province)=0 then '小計(jì)' else city end 市,
sum(score) as 分?jǐn)?shù)
from tb group by province,city with rollup
廣東 廣州 5
廣東 珠海 2
廣東 小計(jì) 10
江蘇 南京 6
江蘇 蘇州 1
江蘇 小計(jì) 7
陜西 安康 4
陜西 漢中 2
陜西 西安 3
陜西 小計(jì) 9
合計(jì) NULL 26
相關(guān)文章
Sql Server 2005中查詢用分隔符分割的內(nèi)容中是否包含其中一個內(nèi)容
Sql Server 2005中查詢用分隔符分割的內(nèi)容中是否包含其中一個內(nèi)容,多個朋友給予的參考。2011-10-10sql server 2005因架構(gòu)無法刪除用戶錯誤15138的解決方法
這篇文章主要介紹了Microsoft SQL Server錯誤: 15138刪除對于用戶失敗,數(shù)據(jù)庫主體在該數(shù)據(jù)庫中擁有架構(gòu),無法刪除問題的解決方法 ,需要的朋友可以參考下2014-07-07同時安裝vs2005團(tuán)隊(duì)開發(fā)版和sql 2005企業(yè)版的方法(downmoon原作)
由于微軟在vs2005 vsts團(tuán)隊(duì)開發(fā)版中集成了sql 2005 express,而在SQL 2005中又集成了vs2005 Express,,所以當(dāng)很多用戶同時安裝vs2005團(tuán)隊(duì)開發(fā)?:?sql 2005企業(yè)版(downmoon)時,就會出現(xiàn)數(shù)據(jù)庫連接失敗的case2012-10-10SQL2008中通過DBCC OPENTRAN和會話查詢事務(wù)
無論是有意無意,如果事務(wù)在數(shù)據(jù)庫中保持打開,則它會阻塞其他進(jìn)程對修改后的數(shù)據(jù)進(jìn)行操作。2011-06-06監(jiān)視SQLServer數(shù)據(jù)庫鏡像[圖文]
SQLServer2005以上版本提供了一個數(shù)據(jù)庫鏡像監(jiān)視器,不過打開它的方法比較特別。有了圖形界面以后,SQLServer數(shù)據(jù)庫鏡像的維護(hù)難度跟成本大大降低了。2009-05-05關(guān)于sqlserver 2005 使用臨時表的問題( Invalid object name #temptb)
最近在利用 SSRS 2005 做報表的時候,調(diào)用帶有臨時表的數(shù)據(jù)源時,系統(tǒng)會報錯,并無法進(jìn)入向?qū)У南乱徊?提示There is an error in the query. Invalid object name #temptb2012-07-07簡單有用的SQL腳本 (行列互轉(zhuǎn),查詢一個表內(nèi)相同紀(jì)錄等)
本文推薦的SQL腳本都是很實(shí)用的哦,學(xué)會了,對在工作中得心應(yīng)手,一起來學(xué)習(xí)學(xué)習(xí)吧。2010-04-04