Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何使用我分组的SSRS表格中的数据列计算百分比_Sql Server_Reporting Services_Ssrs Tablix - Fatal编程技术网

Sql server 如何使用我分组的SSRS表格中的数据列计算百分比

Sql server 如何使用我分组的SSRS表格中的数据列计算百分比,sql-server,reporting-services,ssrs-tablix,Sql Server,Reporting Services,Ssrs Tablix,我有一个SQL查询,它为我提供了一个包含3列的数据集: 合同代码 卷 蒙特勒 我想将这些数据按合同代码按行分组,按月份按列分组: 然后,我想计算两个月之间的百分比差异: 在这种情况下,我只会有两个月的数据——每间隔一年。 我试图表达每行数据从一年到下一年的百分比变化 我这样表达: =(Fields!Volume.Value)/(Fields!Volume.Value) 但很明显,这是不对的——而这是不对的,因为它没有独立地处理这些专栏 我确实按百分比设置了TABLIX文本框的格式,所

我有一个SQL查询,它为我提供了一个包含3列的数据集:

  • 合同代码
  • 蒙特勒

我想将这些数据按合同代码按行分组,按月份按列分组:

然后,我想计算两个月之间的百分比差异:

在这种情况下,我只会有两个月的数据——每间隔一年。 我试图表达每行数据从一年到下一年的百分比变化

我这样表达:

=(Fields!Volume.Value)/(Fields!Volume.Value)
但很明显,这是不对的——而这是不对的,因为它没有独立地处理这些专栏

我确实按百分比设置了TABLIX文本框的格式,所以至少我算出了那个百分比

在这篇Technet文章中:它声明:
您还可以编写自己的表达式来计算一个作用域相对于另一个作用域的聚合值。
我找不到如何处理单独作用域的参考

我会很感激任何关于这一点的指点,请


很抱歉将我的示例发布为JPG而不是实际文本,但我需要隐藏一些数据…

这只起作用,因为您只有两个月的数据可供比较。您必须确保您的SQL已在MonthRegister之前订购。如果您不在查询中排序,则SSRS自己的排序将应用于确定哪个值是第一个和最后一个

=First(Fields!Volume.Value) / Last(Fields!Volume.Value)  
因为您已经在SSR中执行了聚合,所以可能需要将每条语句包装在一个求和表达式中。

如果您只打算以这种方式显示数据,建议尽可能在SQL中执行聚合。

我刚刚在SSR(而不是SQL)中使用了聚合的数据,结果并不好。在这一点上,我将再次重申,在SQL中执行此操作将是一个很好的计划。聚合主要发生在SQL中-SSRS中唯一发生的事情是将一列日期转换为两列。无论如何,正确答案的关键是第一个/最后一个部分。非常感谢。