2014-09-05 67 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