sql - GROUP BY ROLLUP 生成不必要的行

标签 sql sql-server t-sql

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 返回的唯一行。第2张图就是想要的结果

enter image description here

enter image description here

最佳答案

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

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

关于sql - GROUP BY ROLLUP 生成不必要的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54542968/

相关文章:

mysql - 动态将行转换为列

sql - 确保原子性 sql

c# - CommandType为StoredProcedure时如何使用IDbCommandInterceptor修改SQL

sql - 两个字符之间的可变长度子串

sql - 根据列值重置行号T-SQL

sql - Tsql Union Query 破坏了我的 asp.net gridview 中的排序

sql - 计算 SQL Server 中一个值的最大连续出现次数

sql - 查询执行计划: missing index

c# - 关于SQl查询二

sql-server - 将 DateTime[] 作为 SQL 参数传递给 ObjectContext.ExecuteStoreCommand