2014-09-05 68 views
2

對於我們的其中一個報告,我試圖獲得具有取消值爲1的列的行的計數。過去,我使用在Stackoverflow上找到的解決方案來使用Sum函數與IIF,即報告生成器3.0計數與where子句

=Sum(iif(Fields!Canceled.Value="True", 1, 0)) 

但現在我的源數據有一個booking_id多行,所以我需要添加一個不同的列。在SQL我可以很容易地做

SELECT COUNT(DISTINCT(booking_id)) FROM Booking WHERE Canceled=1 

但我不明白如何在Report Builder 3.0中獲得相同的行爲。有任何想法嗎?

+1

我不確定你可以在報告中做到這一點。我只是用SQL來做。 – 2014-09-05 12:55:02

+0

如果數據源是一個sql查詢,我同意Tab - 只是在sql中 - 讓我們知道你是否需要幫助,或者如果你不使用查詢作爲你的數據源 – tintyethan 2014-09-05 13:28:37

回答

2

在T-SQL這樣做,如果可能的話,作爲意見建議是不是一個壞主意,但你可以像一個表達這樣做的報告:

=CountDistinct(IIf(Fields!Canceled.Value = 1, Fields!booking_id.Value, Nothing)) 

CountDistinct會忽略Nothing(即空值)記錄,因此您可以將CountDistinct應用於IIf表達式,該表達式基於Canceled返回booking_idNothing

+0

@Sander,這有幫助嗎? – 2014-09-12 11:44:42