首页 > 解决方案 > GROUP BY ROLLUP 产生不必要的行

问题描述

SELECT [Code],
       [Posting Date],
       [Document No_],
       [Description],
       [External Document No_],
       Sum(Amount)
FROM [Table1]
GROUP BY ROLLUP ([Global Dimension 1 Code],
                 [Posting Date],
                 [Document No_],
                 [Description],
                 [External Document No_]);

每当我运行上面的查询时,我想使用 GROUP BY ROLLUP 对左侧的“代码”列进行小计 Sum(Amount),但是它会在下面以类似楼梯的效果复制行。我觉得我错过了一些明显的东西。突出显示的绿色行是我希望 ROLLUP 返回的唯一行。第二张图是想要的结果

在此处输入图像描述

在此处输入图像描述

标签: sqlsql-servertsql

解决方案


你不需要ROLLUP这里。这将为您提供层次结构每个级别的聚合。您可以使用

GROUP BY GROUPING SETS (([Code], [Posting Date], [Document No_], [Description], [External Document No_]),
                        (Code))

推荐阅读