【问题标题】:Expression for - Row by row variance on grouped datasets表达式 - 分组数据集上的逐行方差
【发布时间】:2018-03-20 17:45:33
【问题描述】:

我在 SSRS 中创建表达式时遇到问题。

我想计算两个数字之间的差异。这些列位于单独的数据集中并进行了分组。它们还在每组的末尾显示总数。

例如

  Dataset 1                                  Dataset 2

Month  Workshops which Ran            Month    Workshops which Ran     Variance
Apr          40                        Apr             30                 10
May          50                        May             40                 10
Jun          45                        Jun             35                 10
Q1 Total     135                       Q1 Total        105                30

宿舍然后继续,但是,你明白了。

即使数据被分组并位于不同的数据集中,是否有办法制作表达式来计算方差列?

任何帮助将不胜感激:)

【问题讨论】:

  • 似乎一个简单的月连接会起作用,然后简单地减去以获得方差。但是,如果这些数据集重复数月(涵盖多年),那么您就会遇到问题。
  • 提示:JOIN-

标签: sql visual-studio tsql reporting-services


【解决方案1】:

如果我们假设:

  1. 任何一个数据集中都可能存在空白,我们可以使用完全外连接并合并。
  2. 您想要方差的绝对差值(没有负数)
  3. 您想要显示在所有情况下运行的月份和研讨会。
  4. 这两个数据集的跨度都不会超过 1 年。 (如果他们这样做了,我们将需要聚合数据集包含年份和月份并将其包含在连接中)
  5. Q1 总值(或其他值)存在于两个数据集中并且拼写相同。

.

SELECT DS1.Month as [DS1 Month]
     , DS1.[Workshops which Ran] as [DS1 Workshops which Ran]
     , DS2.Month as [DS2 Month]
     , DS2.[Workshops which Ran] as [DS2 Workshops which Ran]
     , abs(coalesce(DS1.[Workshops which Ran],0) - coalesce(DS2.[Workshops which Ran],0)) as [Variance]
FROM Dataset1 DS1
FULL OUTER JOIN Dataset2 DS2
 on DS1.Month = DS2.Month

【讨论】:

    【解决方案2】:

    最好的方法是在一个地方创建一个包含所有数据的数据集。如果您出于某种原因无法执行此操作,并且数据集中的数据比您在示例中显示的聚合数据更详细,请查看此帖子。

    http://salvoz.com/blog/2013/05/27/sum-result-of-ssrs-lookupset-function/

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 2017-07-10
      • 2011-02-07
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多