SSRS如果count为Null则显示0

时间:2017-04-27 01:56:06

标签: ssrs-2012 reporting-services-2012

我在SSRS中有一个报告,它计算每个月使用的项目,但由于当月没有使用任何项目,因此缺少了几个月。

=count(Fields!Drug.Value)

ie Jan=2, Mar=1, Apr=3, June=4

我希望月份分组显示,并且计数显示“' 0'如果某个月没有数据。

ie Jan=2, Feb=0, Mar=1, Apr=3, May=0, June=4

如果尝试了IsNothing表达式,但它仍然没有显示' 0'几个月没有数据。

=IIF(IsNothing(count(Fields!Drug.Value)),0, count(Fields!Drug.Value))

' SELECT Distinct         当月份(BagDoseStartDateTime)在7到12之间然后施放(右(年(BagDoseStartDateTime),2)作为varchar(10))+' /' + cast(右(年(BagDoseStartDateTime)+ 1,2)为varchar(10))         else cast(右(年(BagDoseStartDateTime) - 1,2)as varchar(10))+' /' + cast(右(年(BagDoseStartDateTime),2)作为varchar(10))结束为FinancialYear     ,年(BagDoseStartDateTime)为YearAdministered     ,月(BagDoseStartDateTime)作为MonthAdministered       ,d。[药物]       ,d。[BagDoseStartDateTime]

FROM CAB_Reporting.dbo.CAB_V_Doses_Bags D. - 内部加入CAB_Reporting.dbo.CAB_V_Dose_Actions DA on DA.PatientID = D.PatientID

其中((年(BagDoseStartDateTime)= 2016年和月(bagDoseStartDateTime)> 6)或(年(BagDoseStartDateTime)= 2017)) 并且((D.Drug喜欢'红血细胞(1单位)&和D.Status喜欢'管理') 或者(D.Drug喜欢'新鲜冰冻血浆(FFP 1单位)&和D.Status喜欢'管理') 或者(D.Drug喜欢'冷沉淀(多个单位)和D.Status喜欢'管理') 或者(D.Drug喜欢'血小板(1单位)&D。和D.Status喜欢'管理')) 按年份排序(BagDoseStartDateTime),月份(BagDoseStartDateTime)'

1 个答案:

答案 0 :(得分:1)

您需要确保在DataSet 中返回一个列或行,其值为NULL或0.如果您的DataSet中没有该月的字段,则SSRS赢了不知道它存在。我不确定你的查询是什么样的,但是你可以在那里实现COALESCE来设置0,其中你的月份有NULL值。

作为不太理想的结果,您可以在每个月的值字段中使用LOOKUP。

  

LOOKUP(“MonthName”,Fields!Month.Value,Fields!Drug.Value,“DataSetName”)

这将查找与第一个参数匹配的月份,并返回该Drug字段的第一个找到的值。看来你有多个字段,所以你必须使用LOOKUPSET,然后在这种情况下对数组的内容求和。

希望有所帮助。