首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这个合计用ROLLUP语句要如何写

2012-01-13 
这个合计用ROLLUP语句要怎么写统计各个经营部,各种产品的销售量,used_info是销售表,包括经营部、时间、项目、

这个合计用ROLLUP语句要怎么写
统计各个经营部,各种产品的销售量,used_info是销售表,包括   经营部、时间、项目、人员等字段,
    use_dtl是明细表包括   产品、数量等字段

  写了以下语句:
  select   a.bu   as   经营部,a.pdate     as     时间   ,
          a.item   as   项目,       a.rec   as   人员   ,
   
    SUM(CASE   b.product_name   WHEN   '产品1 '   THEN   b.num   END)   [产品1]   ,  
  SUM(CASE   b.product_name   WHEN   '产品2 '   THEN   b.num   END)   [产品2]   ,
  SUM(CASE   b.product_name   WHEN   '产品3 '   THEN   b.num   END)   [产品3]   ,
   
  from     used_info   a     left   join   use_dtl   b   on   a.used_id=b.used_id
  group   by     a.bu   ,a.pdate   ,a.item   ,a.rec

有以下结果:
          经营部           时间             项目         人员       产品1       产品2       产品3
1       A经营部     2006-07-12       项目A       001           1                 2                 3
2       A经营部     2006-07-12       项目B       001           3                 4                 5
3       A经营部     2006-07-12       项目B       002           6                 0                 0
4       B经营部     2006-07-13       项目A       001           2                 3                 4  
5       B经营部     2006-07-19       项目A       003           10               34               3
6       C经营部     2006-07-29       项目C       003           4                 3                 6
   
现在想在以上结果最后加上一行
          合计                                                           26                   46               18

          这个合计用GROUP   BY   ..     WITH     ROLLUP语句要怎么写??


[解决办法]
貌似只能用union all
[解决办法]
select
a.bu as 经营部, a.pdate as 时间, a.item as 项目, a.rec as 人员 ,
SUM(CASE b.product_name WHEN '产品1 ' THEN b.num END) [产品1] ,


SUM(CASE b.product_name WHEN '产品2 ' THEN b.num END) [产品2] ,
SUM(CASE b.product_name WHEN '产品3 ' THEN b.num END) [产品3]
from used_info a
left join use_dtl b on a.used_id=b.used_id
group by a.bu ,a.pdate ,a.item ,a.rec
union all
select
'合計 ', ' ', ' ', ' ',
SUM(CASE b.product_name WHEN '产品1 ' THEN b.num END) [产品1] ,
SUM(CASE b.product_name WHEN '产品2 ' THEN b.num END) [产品2] ,
SUM(CASE b.product_name WHEN '产品3 ' THEN b.num END) [产品3]
from use_dtl

热点排行