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

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

如何給SQL查詢添加合計行

admin
2011年5月4日 15:27 本文熱度 2933

SQL查詢是SQL數據庫的核心功能,下面為您介紹給SQL查詢添加合計行的方法示例,供您參考,希望對您學習SQL查詢能有所幫助。


.數據表t_test
id      銷售人員id         商品id           數量


id       emp_id            product_id       qty


1        01                     001               200


2        01                     002               300


2        01                     002               400


3        02                      001              400


4        02                      002              500
 

  1. Create table #t_test(  
  2. id int not null,  
  3. emp_id int not null,  
  4. product_id int not null,  
  5. qty int not null  
  6. )  
  7. insert into #t_test values(1,01,001,200)  
  8. insert into #t_test values(2,01,002,300)  
  9. insert into #t_test values(3,01,002,400)  
  10. insert into #t_test values(4,02,001,400)  
  11. insert into #t_test values(5,02,002,500)  
  12.  
  13. select *   
  14. from #t_test 



2.需要得到的結果


需要得到類似下面的結果


--------------------------------------


emp_id                    qty


01                           900


02                           900


合計                        1800


--------------------------------------


大家看到了,這里加上了一個合計列


參考sql語句如下

  1. -- for MS SQL Server 2005  
  2. select isnull(CONVERT(varchar(20), emp_id),'Total') as 'emp_id'   
  3.     ,sum(qty) as 'qty_Total'  
  4. from #t_test  
  5. group by emp_id  
  6. with rollup 

SQL查詢的結果如下所示


emp_id qty_Total


1 900
2 900
Total 1800


3.負責一點,統計每個銷售人員以及商品的數量


--------------------------------------


emp_id         product_id             qty


01                 001                        200


01                  001                       700


01                  小計                      900


02                 001                          400


02                 002                          500


02                 小計                         900


合計                                            1800


--------------------------------------


由于要統計合計以及小計,不能簡單的用nvl來產生"合計"了,要用grouping函數,來判斷者某行是否有rollup產生的合計行,

  1. select  
  2.  
  3. case when grouping(emp_id)=1 and grouping(product_id)=1 then '合計' else emp_id end emp_id,  
  4.  
  5. case when grouping(emp_id)=0 and grouping(product_id)=1 then '小計' else procudt_id end product_id,  
  6.  
  7. sum(qty) qty  
  8.  
  9. from t_test  
  10.  
  11. group by rollup(emp_id,product_id)  
  12.  

注意,grouping(emp_id)=1,說明是有rollup函數生成的行,0為數據庫本身有的行。


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