2017-05-18 60 views
0

我需要將此DataSet結果轉換爲以下圖表。 一直試圖爲價值,組,系列的各種組合,但我無法弄清楚!請有人協助請!在此先感謝帶條和線的SSRS報告

SQL數據集 SQL Dataset

圖我需要創建 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或不是所有的一個月標籤可能會顯示。

這並不完美,但它應該讓你接近。

要生成下面的表格,請添加一個新的數據集,指向您的原始數據並添加一個新的指向它的tablix。

希望有所幫助。

+0

這對我來說很好,謝謝,但我有一個數據問題。我需要在結果集1-12中返回12個月,如果沒有數據,則爲空,所以我的圖表總是顯示12個月。 – Thomas

+0

我更新了代碼。基本上我已經添加了一個月表。在這樣的工作中,在數據庫中有物理日期表和諸如此類的東西是很有用的。基本上,我採取了大部分我們之前擁有的UNPIVOT,並且將其加入到月份和月份數字表中,以便我們獲得圖表的全套數據。 –

+0

如果以上解決了您的初始問題,請將答案標記爲已接受。 –