我是这个论坛的新手,但我想问一下报表服务中的图表,我也是新手。
我想创建一个名为Months的图表数据系列,显示4月到3月的数据。但是,表和查询中的数据设置如下,没有monthname
;返回数据字段; Ref, Year, Month1datavalue, Month2datavalue, Month3datavalue.... Month12datavalue
。
查询如下:
SELECT ChartData.Year, ChartData.Month1, ChartData.Month2, ChartData.Month3, ChartData.Month4, ChartData.Month5, ChartData.Month6, ChartData.Month7,
ChartData.Month8, ChartData.Month9, ChartData.Month11, ChartData.Month10, ChartData.Month12, ChartData.SeriesName, ChartData.ColorName, ChartData.Style,
Performance.ReferenceNo, Performance.ShortName, Performance.FullName, Performance.Description, Performance.Active, Performance.Deleted
FROM ChartData INNER JOIN
Performance ON ChartData.PerformanceID = Performance.PerformanceID
WHERE (ChartData.Year = 2015)
我创建了图表,但month1data
显示为month2data
的单独系列。理想情况下,我希望month1data,month2data,month3data
字段能够作为一个系列能够在横轴标题中显示月份名称。
任何想法,比如新手?
由于
答案 0 :(得分:1)
根据您的查询和问题中发布的问题,我使用示例数据重新创建了您的方案。
更新:我已更新查询以返回年份编号。这允许您将月份的名称放在x轴上。
试试这个:
With pivot_cte as
(
SELECT
ChartData.[Year],ChartData.Month1, ChartData.Month2, ChartData.Month3, ChartData.Month4,
ChartData.Month5, ChartData.Month6, ChartData.Month7, ChartData.Month8, ChartData.Month9,
ChartData.Month11, ChartData.Month10, ChartData.Month12, ChartData.SeriesName,
ChartData.ColorName, ChartData.Style, Performance.ReferenceNo, Performance.ShortName,
Performance.FullName, Performance.Description, Performance.Active, Performance.Deleted
FROM
ChartData INNER JOIN Performance ON ChartData.PerformanceID = Performance.PerformanceID
WHERE
(ChartData.Year = 2015)
)
select
[Year],
SeriesName,
ColorName,
Style,
ReferenceNo,
ShortName,
FullName,
[Description],
Active,
Deleted,
ROW_NUMBER() OVER (ORDER BY (SELECT 0)) [Month], --New line added in UPDATE
Value
from
(select * from pivot_cte) p
UNPIVOT
(Value FOR [Values] in
(Month1,Month2,Month3,Month4,Month5,Month6,Month7,Month8,Month9,Month10,Month11,Month12)
) as unpivot_dt;
这将为您提供列作为行,并允许您只创建一个数据系列。此外,它还会返回Month
列,以便将月份名称放在x轴上。
仅使用演示目的运行updated小提示数据示例,并记下图表所需的数据结构。
随着小提琴中暴露的数据我创建了这个图表。系列中有Value
字段,类别组中有Month
字段。
在类别Gropus中右键单击Month
字段,转到Category Groups properties
并为Label
添加以下表达式。
=Choose(Fields!Month.Value,
"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"
)
这将预览以下图表。
如果您只想显示 4月和 5月过滤数据集,请右键单击数据集并转到属性,在属性中转到filter
选项卡,然后单击“添加”按钮。
在表达式1
中放置此表达式:
=CStr(Fields!Month.Value)
表达式2
放置了这个:
=Split("4,5",",")
注意我为4
添加了Apr
,为5
添加了May
,因此,如果您需要展示Oct
,Nov
和{{ 1}}你应该放Dec
使用过滤器,图表会显示=Split("10,11,12",",")
和Apr
。
如果这可以帮到你,请告诉我。