Ssas 聚合时忽略非空值

Ssas 聚合时忽略非空值,ssas,Ssas,我有一个用三个单独的度量值构建的立方体:“TY Sales”、“LY Sales”和“%Change”,我要做的是对聚合行有特殊的行为,如果“TY Sales”为0,在求和时基本上不包括任何“LY Sales”值。因此,目前我的多维数据集的工作原理如下: LYSales TYSales %Change Year 1 450 300 -33% Week 1 100 125 +25% Week 2 150 175

我有一个用三个单独的度量值构建的立方体:“TY Sales”、“LY Sales”和“%Change”,我要做的是对聚合行有特殊的行为,如果“TY Sales”为0,在求和时基本上不包括任何“LY Sales”值。因此,目前我的多维数据集的工作原理如下:

        LYSales  TYSales  %Change
Year 1   450      300     -33%
Week 1   100      125     +25%
Week 2   150      175     +14%
Week 3   200       0      +0%
本例中的聚合列“第1年”是对每个销售度量值的所有值的总和。我想让它做的是,如果TYSales也有非零值,那么只在LYSales中包含值。因此,我的理想状态如下:

        LYSales  TYSales  %Change
Year 1   250      300     +20%
Week 1   100      125     +25%
Week 2   150      175     +14%
Week 3   200       0      +0%

我是SSAS的新手,所以欢迎任何指导。感谢

如果TYSales为零,实现这一点的一种简单可靠的方法是将
LYSales
的源列更改为零。这将在度量所依据的事实表中完成。你可以实现这一点

  • 在ETL过程中,当TYSales为零时,将LYSales列值更改为零
  • 或者在基于事实表的视图中,该事实表随后在数据源视图中而不是在原始表中使用
  • 或作为数据源视图中事实表的计算结果
在后两种情况下,计算公式如下:

case when TYSales <> 0 then LYSales else 0 end
当TYSales 0然后LYSales else 0结束时的情况

然后切换度量值定义以使用该列。

问题是我希望LYSales显示每个星期的所有值,如果这些值没有相应的TYSales值,则不包括在摘要行中。您可以在第二个表中看到这一点,其中所有3周的LYSales合计为450,但汇总行“第1年”仅显示250,因为它不包括第3周。如果这有意义的话。@user2350428这是一个特定查询的要求,还是您希望将此计算应用于针对多维数据集运行的任何查询的一般要求?