2016-08-11 38 views
0

我希望您可以幫助我解決SSRS報告的線圖我試圖創建的問題。所以現在,我正在查詢我們的數據庫以獲得每天都有的卡數。每張卡片都是數據庫中的一個單獨的行。現在,我的圖表將cardCounts的總和用作Y軸,對於X軸,它將日期用作類別組。現在問題在於,幾天之後,根本沒有數據,因爲我們當天沒有創建卡片。因此,而不是線圖包括那一天作爲0值,它完全跳過那一天(在下面的圖片中,2016年7月16日的一天完全缺失)。我試圖在數據層面上做,但是當我做一個「isnull」時,它仍然不起作用。 Screenshot of issue對於不返回行的日期,SSRS顯示默認值爲0

這裏是我使用的查詢:

SELECT dbo.ProductionSet.PSId,Convert(date,MIN(PSCreateTime)) AS CreateTime,isnull(MAX(dbo.ProductionSet.PSCardsInSet),0) AS CardCount,MAX(PrintJobMaster.PJMBatchid) AS BatchId, 
isnull(DATEDIFF(SECOND,MIN(PaperPrintStart.PSTimeOf),MIN(PaperPrintDone.PSTimeOf)),0) AS PaperPrintSecs, 
      isnull(nullif(DATEDIFF(Minute,MIN(ProductionSet.PSCreateTime),MIN(PaperCopyDone.PSTimeOf)),0),0) AS SecsToPaperOnPress 
    FROM dbo.ProductionSet WITH (NOLOCK) 
      LEFT OUTER JOIN PSStats PaperPrintStart WITH (NOLOCK) ON ProductionSet.PSId = PaperPrintStart.PSID AND PaperPrintStart.PSStatTo='1-1' AND PaperPrintStart.PJMID IS NOT NULL 
      LEFT OUTER JOIN PSStats PaperPrintDone WITH (NOLOCK) ON ProductionSet.PSId = PaperPrintDone.PSID AND PaperPrintDone.PSStatTo='3-3' AND PaperPrintDone.PJMID IS NOT NULL 
      LEFT OUTER JOIN PSStats PaperCopyStart WITH (NOLOCK) ON ProductionSet.PSId = PaperCopyStart.PSID AND PaperCopyStart.PSStatFrom='PA-D' 
      LEFT OUTER JOIN PSStats PaperCopyDone WITH (NOLOCK) ON ProductionSet.PSId = PaperCopyDone.PSID AND PaperCopyDone.PSStatTo='PAD-D' 
      LEFT OUTER JOIN PSStats EncodingStart WITH (NOLOCK) ON ProductionSet.PSId = EncodingStart.PSID AND EncodingStart.PSStatTo='R' 
      LEFT OUTER JOIN PSStats EncodingDone WITH (NOLOCK) ON ProductionSet.PSId = EncodingDone.PSID AND EncodingDone.PSStatTo='M' 
      LEFT OUTER JOIN dbo.PrintJobMaster WITH (NOLOCK) ON dbo.PrintJobMaster.PJMPSID=productionset.PSId 
WHERE ProductionSet.PSCreateTime >= '7/16/2016' and ProductionSet.PSCreateTime < '7/17/2016' and PaperCopyDone.PSTimeOf is not null 
     GROUP BY ProductionSet.PSID 
     ORDER BY MIN(ProductionSet.PSId) 

回答

0

如果彈出軸屬性,應該有「軸類型」設置。第二個是「標量(數字/日期)」。這將改變軸,使它包含其範圍內的所有值,而不僅僅是那些有關聯的數據。

編輯:唉,這是部分原因,因爲它不包括在這些空白間隔上顯示歸零數據點。說實話,我最後一次爲生產數據做了這樣的工作,我實際上使用了一個柱形圖,它自然地顯示了數據集中的空白。

-bitnine

+0

謝謝。這有助於使這一天顯示出來,但是,現在沒有實際的數據點,而是從15日到17日加入的線條看起來像是16日有價值,當它真的應該在當天下降到0。有沒有辦法使數據點的天數默認爲0而不必重寫查詢? – Saif

+0

嗯。在我的頭頂,我知道如何讓這條線消失,但不一定在那個時間間隔爲0。大多數顯示0的計算字段的方法僅適用於在該間隔中至少有一個值爲一個系列的情況。 如果調出屬性窗格並單擊該軸,則在「EmptyPoint」數據下有一個部分,該部分定義沒有數據的行屬性。如果將其設置爲「無顏色」,則會在沒有數據的情況下使線條中斷,但仍不會顯示數據點爲0. – bitnine

0

嘗試在圖表的Values使用這種表達。

=Sum(
IIF(ISNOTHING(Fields!CardCount.Value),0,Fields!CardCount.Value) 
) 

enter image description here

它將爲在x軸的日期與空y軸值產生0。

請注意,您有兩個值系列,因此您必須對兩個字段使用相同的 表達式。

讓我知道這是否有幫助。

+0

謝謝,我試過但沒有更改。我認爲除了改變查詢外沒有別的辦法,至少在那一天(第16次)返回一些東西(甚至是空值)。我認爲問題在於沒有任何東西被返回,甚至不是一天的價值,所以它從字面上看不出任何現有的東西。我會深入研究這個問題並稍微改變一下。再次感謝! :) – Saif

+0

@Saif。分享您的查詢,在這種情況下,您可以將您的查詢與包含所有必需日期的表結合起來。讓我知道你是否需要進一步的幫助。 –

相關問題