大家帮忙看看,一个rollup的问题
才转到mssqlserver下,算个新手,这几天开发遇到一个问题: 
 数据例子如下   
 月份            部门      人员      数量 
 200701      01            01            2 
 200701      02            01            2 
 200702      01            01            3   
 怎么能产生: 
 月份               部门         人员         数量 
 200701         01               01                  2 
 200701         02               01                  2 
 200701                                                      4 
 200702         01               01                  1 
 200702                                                      1   
 如果用下面语句: 
 select   月份,   部门,   人员,   sum(数量) 
 from   test 
 group   by   月份,部门,人员   with   rollup   
 则会出现部门的汇总: 
 200701      01         01            2 
 200701      01         合计      2 
 200701      02         01            2 
 200701      02         合计      2 
 200701                                       4 
 。。。。。   
 以前用oracle,在里面处理很方便: 
 select   月份,部门,人员,sum(数量) 
 from   test 
 group   by   rollup(月份,(部门,人员))   
 但试了一下,在with   rollup里不支持括号,请问各人高手, 
 mssql里有没有类似功能? 
 另外,不要用   select   月份,部门+人员   这种方式,应用复杂的时候用起很恼火。
------解决方案--------------------今天才知道 group by 还可以用 with rollup 选项,真的很不错,可怜我以前还写一些很复杂的逻辑来处理   
 感谢楼主!!!     
------解决方案--------------------create table tb(月份 varchar(6),部门 varchar(10),人员 varchar(10),数量 int) 
 insert into tb values( '200701 '  , '01 ',     '01 ',    2) 
 insert into tb values( '200701 '  , '02 ',     '01 ',    2) 
 insert into tb values( '200702 '  , '01 ',     '01 ',    3)   
 select * from tb 
 union all 
 select 月份,部门= ' ',人员= ' ',sum(数量) 数量 from tb group by 月份 
 order by 月份   
 drop table tb   
 /* 
 月份   部门       人员       数量           
 ------ ---------- ---------- -----------  
 200701 01         01         2 
 200701 02         01         2 
 200701                       4 
 200702 01         01         3 
 200702                       3   
 (所影响的行数为 5 行) 
 */