日期:2014-05-18  浏览次数:20633 次

这个合计用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.produc