2011-09-29 60 views
0

我正在處理SSRS報告,並且遇到問題時我的工廠名稱在所選日期範圍內沒有可用數據時未顯示。制定SSRS查詢以在GROUP BY中包含零/空行

最左邊的列,第一行(技術上由圖像其二)是我的廠名字應該出現在任何時候都:

enter image description here

enter image description here

基本爲第一圖像顯示剛我的空白行/列。第一列,第一行是我的植物名稱應始終在哪裏。其餘列是我根據日期選擇返回的數據。

第二張圖像將顯示所有工作,因爲它應該有數據時。

我正在通過SSRS中的PlantCode進行分組,這是我的工廠名稱。即使沒有可用的數據,我也不知道如何讓工廠名稱出現。

這可能嗎?

我想我可以使用類似iif(salesvolume is NOTHING, [PlantCODE],[PlantCode])

下面是報告

SELECT 
    PInv.[Plant_Numer], 
    PInv.[Plant_Code], 
    PInv.{Department_number], 
    PInv.[Inventory_Volume], 
    Pinv.[Inventory_Date], -- 'Last Inventory Date' 
    pls.[Actual_Volume], 
    pls.[Budget_Volume], 
    ppf.[Good_Output_Product_Units] AS 'Production Volume', -- 'Next Day Production 
    CASE 
     WHEN coalesce (pls.[Acutal_Volume],0) = 0 and coalesce (pls.[Actual_Sales_Dollars],0) = 0 THEN 0 
     ELSE ((pls.[Actual_Sales_Dollars/pls.[Actual_Volume])) AS 'Average Price' -- 'Next Day Sales' 
FROM 
    [TrueOpportunity].[dbo].[Production_Fact] pf 
    inner join [TrueOpportunity].[dbo].[Production_Process_Fact] ppf on ppf.production_number = pf.production_number 
    inner join [TrueOpportunity].[dbo].[Process] prc on prc.process_number = pf.process_number 
    inner join [TrueOpportunity].[dbo].[Department] dpt on dpt.department_number = prc.department_number 
    inner join [WoodProduction_New].[dbo].[Plywood_Layup_Sales] pls on pls.procesS_number = pf.procesS_number 
    inner join [WoodProduction_New].[dbo].[Process_Inventory] Pinv on PInv.[Inventory_Date] = pf.date 
     and pls.product_date = pf.date 
     and dpt.department_number = pinv.department_number 
WHERE 
    pf.date between @BeginningDate and @EndingDate 
+0

所以現在我的其他缺乏知識即將顯示......我該怎麼做?我只是將圖像保存到我的桌面。謝謝! –

+0

您可以發佈您用於生成報告數據的數據庫查詢嗎?那就是我會建議你每次都要返回Plantcode的改變。 – PaulStock

+0

我會盡力的。 P. Campbell添加了我的圖像,所以當我編輯它時說我不能,因爲我試圖添加圖像。袒護我! –

回答

0

我想你想改變你的查詢,以便處理庫存是你的主表和所有其它的數據庫查詢表格爲LEFT JOINED。不管在其他表中是否有匹配的數據,工廠編號&代碼都會顯示出來。

這句法可能是不完全正確的,但我會改變你的FROM子句看起來像這樣開始了:

FROM 
    [WoodProduction_New].[dbo].[Process_Inventory] Pinv 
    LEFT JOIN [TrueOpportunity].[dbo].[Production_Fact] pf 
     ON PInv.[Inventory_Date] = pf.date 
    LEFT JOIN [TrueOpportunity].[dbo].[Production_Process_Fact] ppf 
     ON ppf.production_number = pf.production_number 
    LEFT JOIN [TrueOpportunity].[dbo].[Process] prc 
     ON prc.process_number = pf.process_number 
    LEFT JOIN [TrueOpportunity].[dbo].[Department] dpt 
     ON dpt.department_number = prc.department_number 
     AND dpt.department_number = pinv.department_number 
    LEFT JOIN [WoodProduction_New].[dbo].[Plywood_Layup_Sales] pls 
     ON pls.process_number = pf.process_number 
     AND pls.product_date = pf.date 

實驗與,看看你能得到它來顯示數據你要。

+0

它幾乎可以工作。我確實設法讓它顯示一件事情,但是我所有的數據對於本週的所有工廠都是一樣的。但是,我會玩弄它,看看我能想出什麼。謝謝! –