2015-02-24 28 views
0

我是SSRS的新手,並且遇到了有關我創建的報告的問題。也許我只是不理解如何將數據從數據集檢索,但設置這樣的結果:在SSRS中檢索具有多個條件的IIF表達式中的數據時出錯

Count ColA  ColB  ColC 
1  Business Start  Regular 
4  Global  Middle  Regular 
5  Online  Middle  Regular 
8  Online  End   Regular 
13  Online  Start  Regular 

我的假設是,我應該能夠使用表達式這樣

=iif(Fields!ColA.Value = "Online" AND Fields!ColB.Value = "Start" AND Fields!ColC.Value = "Regular", Fields!Count.Value, 0) 

在文本框中,它應該返回13.相反,它返回0的假條件。

任何幫助,你可以提供在這將不勝感激。我確信答案在那裏,但是我對SSRS的瞭解有限,可能會妨礙我的搜索標準技能。

+0

我想出了我的問題。發佈答案,比如說。 – 2015-02-24 22:04:21

回答

-1

我沒有一個活動的SSRS安裝來試用這個,但是如果在每個子句的周圍添加括號會發生什麼?

=iif((Fields!ColA.Value = "Online") AND (Fields!ColB.Value = "Start") AND (Fields!ColC.Value = "Regular"), Fields!Count.Value, 0) 

供參考,便利的文檔:https://msdn.microsoft.com/en-us/library/ms157328.aspx

我記得現在我通常會將這種邏輯轉移到SQL查詢中,這可以使調試變得更容易,甚至促進單元測試。例如,你可以在你的SELECT語句添加更多的領域,具有類似:

SELECT CASE WHEN ColA == 'Online' AND 
        ColB == 'Start' AND 
        ColC == 'Regular' 
      THEN [Count] 
      ELSE 0 END as ColD, 

現在你可以簡單地指寒冷的SSRS。

+0

沒有骰子。它仍在評估爲假。感謝您的有用鏈接。爲了將來的參考書籤。 – 2015-02-24 18:06:23

0

答案就是你的窩正是如此綜合投資框架:

=IIf(Fields!ColA.Value = "Online", IIf(Fields!ColB.Value = "Start", IIf(Fields!ColC.Value = "Regular", Fields!Count.Value, 0), 0), 0) 
0

我想通了,我的問題。

當我創建我的Tablix時,我手動添加了一堆行和列以顯示數據,並在做這些操作時刪除了鏈接到DataSet的行和列(不知道我是如何做到的)。

我的恐懼無法顯示所有可能的輸出(即需要顯示計數爲零的行)。我重新修改了我的查詢以包含零條目,並使用新查詢重新創建了報告,所有事情都解決了。

我知道我不應該爲做noob而感到難過,但是認真的,呃。