2009-10-16 97 views
3

我正在使用汇总子句,它是如何显示不同级别的聚合WITH NULL值显示不同级别的rollups例如, rollup(year,month,week)将显示每个级别的小计。TSQL汇总 - 返回非空

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

任何想法我该怎么做?

问候 Manjot

回答

6

你说的“aggragation的唯一最高级别意味着

您可以通过检查避免空值,如果在一列编组,就像这样:?

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 insteaed NULL。

+0

非常感谢你 – Manjot 2009-10-23 22:04:23

+0

@#$%YA!对这一个投票!很好的解决方案!我使用ISNULL但后来当实际值应该为空时,我遇到了问题!谢谢! – kralco626 2010-07-14 11:08:30

+0

我的问题是价值列返回null ...我用Sum(ISNULL(Value,0))来解决问题。 – BlackjacketMack 2015-02-05 16:06:33