TSQL汇总 - 返回非空

时间:2009-10-16 19:35:54

标签: sql-server-2008 tsql

我正在使用Rollup子句以及它如何显示各级WITH NULL值的聚合,显示rollups的不同级别,例如rollup(year,month,week)会在每个级别显示小计。

我希望它卷起来但又想看到最高级别的聚合。 所以我不想看到任何null值。

知道我该怎么做?

此致 Manjot

1 个答案:

答案 0 :(得分:6)

“只有最高级别的聚合是什么意思?”

您可以通过检查分组中的列是否可以避免NULL,如下所示:

SELECT        CASE WHEN Grouping(GroupID) = 1 THEN '#ALL' ELSE GroupID END AS         GroupID,          
              CASE WHEN Grouping(SubGroupID) = 1 THEN '#ALL' ELSE SubGroupID END AS SubGroupID, 
              Sum(Value)
FROM          Table
GROUP BY      GroupID,
              SubGroupID
WITH ROLLUP

它将显示#ALL而不是NULL。