我正在Visual Studio 2017(SSRS)中构建一个报告,它使用一个返回以下数据的存储过程:
$(document).ready(function(){
$(".slidingDiv_a").hide();
$(".show_hide_a").show();
$(".slidingDiv_b").hide();
$(".show_hide_b").show();
$('.show_hide_a').click(function(){
$(".slidingDiv_a").slideToggle();
});
$('.show_hide_b').click(function(){
$(".slidingDiv_b").slideToggle();
});
});
我需要获得每个状态,每年,每种类型的计数,所以我开始构建一个矩阵,STATUS作为第一列组,YEAR作为其子,然后,在行组中我只有TYPE。在数据字段中,我只有计数,所以它看起来像这样:
PRODUCT_ID TYPE YEAR STATUS
15242 01 1516 ACTIVE
54541 02 1617 ACTIVE
64454 01 1516 INACTIVE
73697 02 1516 INACTIVE
98878 03 1617 ACTIVE
我的问题如下。我想添加一个DIFF列(下面的示例)来计算两年之间的差异,但问题是因为所有这些都是动态完成的,所以我不知道如何使用计数访问文本框来计算差异。我可以构建一个计算所有这些数字的存储过程,但这将是一个较慢的解决方案,因为字段TYPE将随着时间的推移而增长。
ACTIVE INACTIVE
1516 1617 1516 1617
01 1 0 1 0
02 0 1 1 0
03 0 1 0 0
任何帮助将不胜感激。提前谢谢你们。
答案 0 :(得分:0)
我不认为您可以按照自己的方式制作矩阵,而不会使用会破坏性能的一堆LookUps。
我会制作一个常规表并过滤表达式中的数据以分隔年份。您必须根据您的数据找出一些逻辑,以确定哪一年是当前年份,哪一年是最后一年。
您将使用与现在相同的TYPE分组。
嗨你我你已经确定了当前的当年:
=SUM(IIF(Fields!YEAR.Value = Parameter!Current_Year.Value, 1, 0)
对于DIFF列,请使用
=SUM(IIF(Fields!YEAR.Value = Parameter!Current_Year.Value, 1, 0) - SUM(IIF(Fields!YEAR.Value = Parameter!Previous_Year.Value, 1, 0)
您可以在查询中使用变量或字段来标识当前年份 - 它不需要是参数。
您可以仍然使用状态(Stati?)的矩阵作为Active和Inactive。
答案 1 :(得分:0)
我找到了一种使用上一个函数来计算矩阵列之间差异的方法(可从SSRS 2008及更高版本获得)。看我对这个问题的回答。如何在ssrs矩阵中减去相邻列