我正在处理SSRS报告,如果没有可用于所选日期范围的数据,我的工厂名称无法显示。
最左边的列,第一行(技术上是图像的第二行)是我的工厂名称应始终出现的位置:
基本上第一张图片只显示我的空行/列。第一列,第一行是我的工厂名称应始终在哪里。其余列是我根据日期选择返回的数据。
当有数据时,第二张图像会显示一切正常。
我在PlantRS中对SSRS进行分组,这是我的工厂名称。即使没有可用数据,我也不知道如何显示工厂名称。
这可能吗?
我认为我可以使用像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)
我认为您想要更改查询,以便Process Inventory是您的主表,而所有其他表都是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
试验一下,看看是否可以让它显示你想要的数据。