表达式 - 分组数据集上的逐行方差

时间:2017-10-09 13:32:59

标签: sql visual-studio tsql reporting-services

我在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
然后,季度继续进行,但是,你得到了照片。

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

真的很感激任何帮助:)

威尔

2 个答案:

答案 0 :(得分:0)

如果我们假设:

  1. 在任一数据集中都可能存在空洞,我们可以使用完全外连接并合并。
  2. 您希望方差的绝对差异(无负数)
  3. 您希望显示在所有情况下都运行的月份和研讨会。
  4. 两个数据集都不会超过1年。 (如果他们这样做,我们将需要聚合数据集以包含年份和月份并将其包含在联接中)
  5. Q1总值(或其他)存在于两个数据集中,且拼写相同。
  6. 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
    

答案 1 :(得分:0)

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

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