2017-04-27 73 views
1

我在SSRS中有一個報告,用於統計每月使用的項目,但由於當月沒有使用任何項目,所以有些月份丟失。SSRS如果計數爲零,則顯示0

=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 情況下,當圖7和12之間月(BagDoseStartDateTime)然後澆鑄(右(年(BagDoseStartDateTime),2)爲varchar(10))+ '/' +鑄造(右(年( BagDoseStartDateTime)+ 1,2)as varchar(10)) else cast(right(year(BagDoseStartDateTime) - 1,2)as varchar(10))+'/'+ cast(right(year(BagDoseStartDateTime),2)爲varchar(10))作爲結束FinancialYear ,年(BagDoseStartDateTime)作爲YearAdministered ,月(BagDoseStartDateTime)作爲MonthAdministered ,d。[藥物] ,d。[BagDoseStartDateTime]

FROM CAB_Reporting.dbo.CAB_V_Doses_Bags d --Inner加入CAB_Reporting.dbo.CAB_V_Dose_Actions DA上DA.PatientID = D.PatientID

凡((年(BagDoseStartDateTime)= 2016和月(bagDoseStartDateTime)> 6)或(年(BagDoseStartDateTime)= 2017)) 和((D.Drug Like'Red Blood Cells(1 Unit)'and D.Status Like'Administered') 或(D.Drug Like'Fresh Frozen Plasma(FFP 1 Unit )'D.Status Like'Administered') 或(D.Drug Like'Cryoprecipitate(Multiple Units)'and D.Status Like'Administered') 或(D.Drug Like'Platelets(1 Unit)'and D .Status Like'Administered')) 按年排序(BagDoseStartDateTime),月(BagDoseStartDateTime)'

+2

你是否返回2月和5月的空值或根本沒有記錄?最簡單的方法可能是在數據集中完成這項工作,但沒有看到您的數據集查詢和輸出看起來很難分辨。你可以發佈數據集查詢和示例輸出。 –

+0

該數據集在2月或5月沒有結果。 – BoDiggy

+0

FY \t年\t月\t ProductType \t ChartTime 16/17 \t 2017年紅細胞\t 2017年2月1日10:25 – BoDiggy

回答

1

您需要確保您返回DataSet中的列或行,其值爲NULL或0.如果您的DataSet中沒有該字段,那麼SSRS將不會知道它存在。我不確定你的查詢是什麼樣子的,但是你可以在那裏實現COALESCE,在你的月份有NULL值的地方設置0。

作爲不太理想的結果,您可以在每個月的值字段中使用LOOKUP。

LOOKUP( 「MONTHNAME」,菲爾茲!Month.Value,菲爾茲!Drug.Value 「的DataSetName」)

這將尋找第一個參數匹配月,返回的第一個發現價值那個毒品領域。看起來你有多個字段,所以你必須使用LOOKUPSET,然後在這種情況下求和數組的內容。

希望有所幫助。

相關問題