2011-11-07 109 views
-1

我總是得到0使用count我無法理解計數和總和總和和計數混亂

我試圖讓行的數量我的報告的具體情況之間的差異或總結

columnA columnB 
0  my string 
0  none 
0  my string 
0  none 
1  none 

= IIF((Fields!columnA.Value = "0" and Fields!columnB.Value = "none"), SUM(Fields!columnA .Value),0)

我想要得到2結果 我看不到我的錯誤

+0

對於列A = 1,IIF將是錯誤的。這意味着你有3個錯誤和2個真實條件。你所要求的輸出意味着給出「3」的錯誤條件。不是「2」。並學會投票/接受答案。 – gbn

回答

1

SUM()將返回該字段中的值的總數,而count將返回非空值的數量。

所以在你提供的例子中,=SUM(Fields!columnA.value)應該返回0,=COUNT(Fields!columnA.value)應該返回5. [但是你的IIF語句聽起來像這是在範圍是單行的位置,所以然後計數和總和會只適用於該行。如果你想餘地整個組的表達,一個範圍參數添加到您的聚合函數,如COUNT(Fields!columnA.value, "MyDataSetName")]

既然你沒有看到這樣的結果,有一些事情你可以檢查:

  • 你真的回來0爲您的查詢,或者有可能 你得到一個空值回?
  • 您是否使用這個表達式 某個地方的範圍與您的期望相符?也就是說,如果你 希望它計算你的數據集中的所有行,你是在頂級 級別的文本框或組合中使用它嗎?

另外,簡化調試:將您的IIF語句的各個組件放置在不同的單元格中,以便您可以驗證這些值是否與您認爲應該發生的情況相符。

+0

我很確定我沒有從我的查詢中獲取空數據,我將其更改爲當結果爲NULL時返回數據。我沒有使用組,我想在頂級文本組中使用結果。我在頂層也使用了countrows(),這是工作。 – user1004299

+0

我在我的textbox = IIF(Fields!CompletedBy.Value =「PDA」,Count(Fields!CompletedBy.Value),0)中使用了這個表達式,並且我得到了所有行的總數,我從countrows()獲得。並且我想只獲得包含「PDA」的行數CompletedBy – user1004299

+0

非常感謝,現在一切正常 – user1004299

0

您應該使用COUNT。列A的0 + 0的SUM將返回0。COUNT將返回匹配記錄的數量。如果COUNT不起作用,那麼您的分組(聚合)或匹配數據的過濾條件有問題。

+0

我使用count IIF((Fields!OrderCompletedOnPDA.Value =「0」和Fields!CompletedBy.Value =「NONE」),COUNT(Fields!OrderCompletedOnPDA.Value),0),我確定我是從我的sp獲取這個數據集。我不能undelook如何在這種情況下不起作用 – user1004299

+0

現在我改變我的sp用於在iff中不使用複雜的expressino。現在我正在使用= IIF(Fields!CompletedBy.Value =「PDA」,Count(Fields!CompletedBy.Value),0),這給了我從countRows獲得的行的總數..我無法理解爲什麼另一個不適合我! – user1004299

+0

它必須是導致問題的NULL數據或作用域。看看COUNT的SSRS規範http://technet.microsoft.com/en-us/library/ms157163(SQL.100).aspx – SliverNinja