[英]Create chart where the columns of the data set are the categories - Report Builder 3.0
我想添加一個非常簡單的圖表,但我一生無法解決。 圖表引用了返回這樣的數據的數據集。 它正在計算每個位置的總和,然后使用匯總來為每個“星期”列產生總計數
Location CurrentWeek PreviousWeek 2WeeksAgo
======== =========== =========== ===========
North 5 6 3
South 4 3 1
East 8 2 3
West 2 7 0
Total 19 18 7
我想要做的是讓CurrentWeek,PreviousWeek,2WeeksAgo列表示X軸(水平),並繪制每個相應列的“總計”值。
添加片段... 示例圖
感謝您添加圖片。
因此,我們有幾個步驟可以到達需要的位置-首先,我們需要將數據轉換為更易於使用和擴展的格式(如果我們添加了“ 3周前”列,我們不會不想重做所有事情)。 所需的格式為:
Date Amount
Current Week 19
1 week ago 18
2 weeks ago 17
我個人而言,而不是將東西命名為“當前星期”,“ 1星期前”等,我將有一個WeeksPrior
列,其中0表示當前星期,1表示一周之前,依此類推。
無論如何,要從示例表中獲取更標准化的輸入,我們必須使用unpivot(它們總是會傷到我的大腦,但是文檔中有一些很好的示例可供您使用)。
SELECT
*
, ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS Ordinal
--this is hacky, but ordering by (select null) allows us to assign a row number by the default order
FROM (SELECT 'Total' AS Location, 19 AS CurrentWeek, 18 AS PreviousWeek, 7 AS [2WeeksAgo]) x
--This is the test data, replace this with your actual query
UNPIVOT (Value FOR Date IN ([CurrentWeek], [PreviousWeek], [2WeeksAgo])) y
--This unpivots the test data, converting the separate columns into a single [Date] column, and assigning the values to the [Value] column.
這將吐出以下內容:
Location Value Date Ordinal
Total 19 CurrentWeek 1
Total 18 PreviousWeek 2
Total 7 2WeeksAgo 3
從這里,我們將數據添加到圖表中。 這很簡單,但是要注意一些“陷阱”。
首先,我們將“ Value
列添加為圖表值,並將“ Ordinal
列添加為類別組。
好的,它到達了,但我們希望標簽位於底部。 為此,我們進入Ordinal
類別組的屬性,然后將標簽切換到date
列。 確保您仍然按Ordinal
排序,因為SSRS不知道“ 1周前”相對於“當前周”的含義,如果不告訴您Ordinal
排序,則會按字母或隨機排序。
我們還可以通過刪除圖例並在水平軸上將主要刻度線樣式更改為“實心”來稍微整理一下圖表,從而使我們看起來像這樣:
在垂直軸上添加標簽也可能會提高可讀性,就像將懸停文本添加到圖表上的點一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.