2009-10-16 131 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