2011-09-29 4 views
0

SSRS 보고서를 작성 중이며 선택한 기간에 사용할 수있는 데이터가없는 경우 식물 이름에 문제가 있습니다.GROUP BY에 0/빈 행을 포함하도록 SSRS 쿼리를 공식화

enter image description here

enter image description here는 기본적으로 첫 번째 이미지는 단지 보여 주었다 : 내 식물의 이름은 항상 표시 할 위치

맨 왼쪽 열은, (이미지에 의해 기술적으로 2 차) 첫 번째 행은 내 빈 행/열. 첫 번째 열, 첫 번째 행은 내 공장 이름이 항상 있어야하는 곳입니다. 나머지 열은 날짜 선택에 따라 반환 된 데이터입니다.

두 번째 이미지는 데이터가있을 때와 같이 모든 작업을 표시합니다.

내 식물 이름을 제공하는 SSRS의 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

내가 그 프로세스의 재고가 기본 테이블과 다른 모든 그래서 당신이 당신의 쿼리를 변경할 생각 보고서의 데이터베이스 쿼리

은 내가 여기 iif(salesvolume is NOTHING, [PlantCODE],[PlantCode])

같은 것을 사용할 수 생각된다 테이블은 해당 테이블에 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

거의 작동합니다. 나는 그것을 한 가지만 보여 주려고했지만, 모든 데이터는 한 주 동안 모든 식물에 대해 동일했습니다. 그러나 나는 그걸 가지고 놀고 내가 무엇을 생각해 낼 수 있는지 보게 될 것이다. 감사! –

관련 문제