2017-05-18 3 views
0

이 데이터 세트 결과를 다음 차트로 변환해야합니다. 가치, 그룹, 시리즈에 대한 모든 종류의 조합을 시도했지만 그것을 이해할 수는 없습니다! 누군가 제발 도와 줄 수 있어요! 미리 감사는SSRS 바 및 라인 보고서

SQL 데이터 세트 SQL Dataset

차트 나는이 차트 데이터를 얻기 위해 내가 UNPIVOT 것이지만 가장 좋은 방법인지 잘 모르겠어요 Chart I need to create

답변

0

를 작성해야 데이터를 만들고 데이터 세트에 두 개의 열을 만듭니다. 다음은 차트에서 처리하기 쉬운 데이터로 그림 데이터 세트를 변환하는 몇 가지 샘플 코드입니다.

-- CREATE A Month NUmber table 
-- Create this as a physical table, I'm doing this as a Table variable for this exmaple only 
-- CREATE TABLE dbo.Months (Month_Name varchar(3), Month_Number int) 
DECLARE @Month TABLE(Month_Name varchar(3), Month_Number int) 

INSERT INTO @Month VALUES 
('Jan', 1), ('Feb', 2), ('Mar', 3), ('Apr', 4), ('May', 5), ('Jun', 6), 
('Jul', 7), ('Aug', 8), ('Sep', 9), ('Oct', 10), ('Nov', 11), ('Dec', 12) 

-- CREATE and populate dummy table 
DECLARE @t table (FranchiseNumber int, Report_Year int, Jan int, Feb int, Mar int, Apr int, May int, Jun int, Jul int, Aug int, Sep int, Oct int, Nov int, Dec int) 

INSERT INTO @t Values 
(103332, 2016, 578,591,616,611,611,577, NULL, NULL, NULL, NULL, NULL, NULL), 
(103332, 2017, 343,332,324,310,309, NULL, NULL, NULL, NULL, NULL, NULL, NULL) 

DECLARE @d TABLE(FranchiseNumber int, Month_Name varchar(3), Previous_Year int, Current_Year int) 

-- unpivot, create prev and current year columns and add a month number to help sort the Axis 
INSERT INTO @d 
select 
    FranchiseNumber 
     , Month_Name 
     --, DATEPART(MM, Month_Name + ' 01 1999') AS Month_Number -- REMOVED 
     , SUM(CASE Report_Year WHEN 2016 THEN Month_Value ELSE NULL END) AS Previous_Year 
     , SUM(CASE Report_Year WHEN 2017 THEN Month_Value ELSE NULL END) AS Current_Year 
    from 
     @t p 
    UNPIVOT 
     (Month_Value FOR 
      Month_Name IN (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec) 
     ) as unPiv 
    GROUP BY FranchiseNumber, Month_Name, DATEPART(MM, Month_Name + ' 01 1999') 

SELECT d.FranchiseNumber, m.Month_Name, m.Month_Number, d.Previous_Year, d.Current_Year 
    FROM @Month m 
    LEFT JOIN @d d ON m.Month_Name = d.Month_Name 

이렇게하면 다음과 같은 결과가 출력됩니다. enter image description here

차트 디자인은 다음과 같습니다.

enter image description here

은 내가 한 모든 값 영역에서 Previous_Year 드롭 다운을 클릭하고 열에 차트 유형을 변경, 라인 차트 드래그에게 값 영역에 현재 및 이전 해 열을 생성했다. 그 내가 가로 축에 마우스 오른쪽 버튼으로 클릭하고

업데이트 MONTH_NUMBER으로 분류 한 후

: 당신은 아마 할 것이다 가로축, 선택 속성을 마우스 오른쪽 버튼으로 클릭하고 1 또는 모든 달 간격 변경 레이블이 표시 될 수 있습니다.

완벽하지는 않지만 가까이에 있어야합니다.

아래 테이블을 생성하려면 새 데이터 세트를 추가하고 원래 데이터를 가리키고이를 가리키는 새 테이블 릭스를 추가하십시오.

희망이 있습니다.

+0

저에게 큰 도움이되었지만 데이터에 문제가 하나 있습니다. 나는 12 개월 결과 집합 1-12에 반환해야하며, 데이터가 없으면 null이되어 내 차트에는 항상 12 개월이 표시됩니다. – Thomas

+0

코드를 업데이트했습니다. 기본적으로 월 표를 추가했습니다. 이와 같은 작업에 대해 데이터베이스에 실제 날짜 테이블과 이와 유사한 항목을 갖는 것이 유용합니다. 본질적으로 나는 이전에 가지고 있던 대부분의 UNPIVOT을 취하고 LEFT를 월 및 월 숫자 테이블에 조인함으로써 차트에 대한 전체 데이터 세트를 얻습니다. –

+0

위의 내용이 귀하의 초기 질문을 해결하면 답변을 수락 된 것으로 친절하게 표시하십시오. –