SELECT 部门=CASE 
        WHEN GROUPING(部门)=1 THEN '总计'
        WHEN GROUPING(炉号)=1 AND GROUPING(物料名称)=1 and grouping(日期)=1 THEN '部门合计'
        ELSE 部门 END,
    炉号=CASE  
        WHEN GROUPING(物料名称)=1 AND grouping(日期)=1 and GROUPING(炉号)=0 THEN ' 小计'
        WHEN GROUPING(物料名称)=1 AND grouping(日期)=1 and GROUPING(炉号)=1 THEN ''
        ELSE 炉号 END, 
    物料名称=CASE
        WHEN GROUPING(物料名称)=0 THEN 物料名称
        ELSE '' END,
    日期=case
        WHEN GROUPING(物料名称)=0 THEN max(日期),
     END,
    sum(总数) as 总数,
FROM #data2 
GROUP BY 部门,炉号,物料名称,日期 WITH rollup
以车间和炉号分别作小计,最后以车间合计 需要显示日期,但是这么处理的话,就会让车间、炉号、物料相等日期不相等的时候将记录合并,日期取最大值,可是我还是想选择日期。要是不用这么处理的话就会产生重复行。。各位帮我一下。。谢谢

解决方案 »

  1.   

    想选择日期就需要把日期放到GROUP 字段中去
      

  2.   


    这个我知道,但是会在每一条记录下面多出来一条记录,我就是为了不想出现多余的字段我才是这样弄的。。
    如果把日期group by中,而且日期那一列就是直接写成日期,那个多余出来的一行,结果就是按日期也进行的一次汇总吧