SSRS在带有查询的表中透视数据

时间:2013-12-18 21:57:35

标签: reporting-services pivot

我有一个数据集,第1列:Year为整数(2011年,2012年和2013年),第2列:KPI为索引(0-100)。

我想将数据报告为矩阵,其中KPI为行,年份为列。 3年中每一年都有一栏。 为此,矩阵选项很好。

但是,我想在第4栏中显示2012年至2013年的发展情况,指标(Negativ为红色,中性为黄色,正面开发为绿色)。

在Sql中,我只需按以下方式转动数据:

SELECT  KPI,    
        AVG(case when [year] = 2013 then indeks ELSE NULL end) as [2013], 
        AVG(case when [year] = 2012 then indeks ELSE NULL end) as [2012],
        AVG(case when [year] = 2011 then indeks ELSE NULL end) as [2011]
from    KVI_overblik
Group BY KPI
order BY KPI

然后我会在4.列中进行计算(KPI.2013 - KPI.2012)。

如何在SSRS查询中进行缩减?为了在不使用矩阵的情况下设计手动表。

如果我继续使用矩阵,我可以制作4.列吗?

期待听到您的回答。

最佳标志。

1 个答案:

答案 0 :(得分:0)

我用矩阵解决了这个问题。在矩阵中我添加了一行总数。该总和是所有行值的总和。 因此,我必须在新行总计库中编辑我的表达式:

=IIF(
(isnothing(avg(IIF(Fields!year.Value="2012",Fields!indeks.Value,nothing)))) or (isnothing(avg(IIF(Fields!year.Value="2013",Fields!indeks.Value,nothing))))
,nothing
,
 avg(IIF(Fields!year.Value="2013",Fields!indeks.Value,nothing))
-avg(IIF(Fields!year.Value="2012",Fields!indeks.Value,nothing))

) 

我只希望2013年的最新结果与2012年的结果相比。表达式计算开发。

最后,我在计算字段中插入了一个指标。