GROUP BY ROLLUP产生不必要的行

时间:2019-02-05 21:01:17

标签: sql sql-server tsql

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在左侧的“代码”列中总计小数(金额),但是它会在下面的阶梯状效果中复制行。我觉得我缺少明显的东西。突出显示的绿色行是我希望ROLLUP返回的唯一行。第二张图片是理想的结果

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:4)

您在这里不需要ROLLUP。这将使您在层次结构的每个级别进行聚合。您可以使用

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