我在CROSS TABLE
中有两个环境,A和B.每个环境都有商店,其旁边有单位数量。此外,还有一列显示每个环境中每个商店的总单位百分比。
总数百分比代码如下:
Sum([UNITS]) THEN [Value] / Sum([Value]) OVER (All([Axis.Rows])) as [% Units]
假设商店1的每个环境的总数百分比不同。我想创建一个单独的自定义表达式,显示这两个百分比之间的差异。
现在,我有一个不太可取的变体。它只显示商店1的单位变化百分比,而不是总数百分比的变化。此代码如下所示:
(Sum([UNITS]) - Sum([UNITS]) OVER (PreviousPeriod([Axis.Columns]))) / Sum([UNITS]) OVER (PreviousPeriod([Axis.Columns])) as [Unit Difference]
我尝试将第一段代码嵌入到第二段中,但未成功。任何帮助将不胜感激!
答案 0 :(得分:0)
我相信你所寻找的是
SUM(If([Environment] = 'A', [Units], 0))/(SUM(If([Environment] = 'A', [Units], 0)) OVER (Parent([Axis.Rows])) - SUM(If([Environment] = 'B', [Units], 0))/(SUM(If([Environment] = 'B', [Units], 0)) OVER (Parent([Axis.Rows])) as [% Difference]
这将需要从水平访问中删除A / B区别并将其替换为(列名称)并制作两个不同的自定义表达式列,由
组成SUM(If([Environment] = 'A', [Units], 0))/(SUM(If([Environment] = 'A', [Units], 0)) OVER (Parent([Axis.Rows])) as [A %]
和
SUM(If([Environment] = 'B', [Units], 0))/(SUM(If([Environment] = 'B', [Units], 0)) OVER (Parent([Axis.Rows])) as [B%]
如果这不是您想要的,我建议您使用示例数字来说明您希望输出看起来像什么。