Adventure Works成员使用子查询和FILTER

时间:2018-07-23 06:46:25

标签: ssas mdx

我已经创建了我在SSAS多维数据集中遇到的问题的模型。我正在使用维度成员根据当前[日期]。[财政]。[月]计算YTD聚合。此计算是MDX脚本的一部分。当我使用此计算结合到具有FILTER函数的子查询(子多维数据集)中时。然后更改[Month]会导致返回的查询为空。似乎尚未从光盘读取月份数据时,就会发生这种情况。这是用于重现问题的代码:

我正在使用[Resseler]成员来模拟我的[Period Calculation]维,该维不受度量组的约束。 MDX脚本中的计算如下所示:

[Sales Channel].[Sales Channel].&[Reseller] = SUM(PERIODSTODATE([Date]. 
[Fiscal].[Fiscal Year], [Date].[Fiscal].CURRENTMEMBER) * [Sales Channel]. 
[Sales Channel].&[Internet]);

然后我正在使用此查询:

SELECT [Measures].[Internet Sales Amount] ON 0,
NON EMPTY [Product].[Product].[Product].MEMBERS ON 1
FROM
(
   SELECT FILTER([Product].[Product].[Product].MEMBERS, [Measures].[Internet 
   Sales Amount] > 20000) ON 0 
   FROM [Adventure Works] WHERE ([Date].[Fiscal].[Month].&[2011]&[6], [Sales Channel].[Sales Channel].&[Reseller])
)
WHERE ([Date].[Fiscal].[Month].&[2011]&[6], [Sales Channel].[Sales Channel].&[Reseller])

如果在两个表达式中(在子多维数据集内和其中)都更改了月份,那么从6-> 7或其他月份开始,一个月的数据就会消失。然后,在没有子多维数据集的情况下运行查询也会停止返回数据。甚至clearcache也无法恢复数据。

我已经在SQL2016SP1,SQL2012上对此进行了测试。似乎它适用于SQL2008。同样,如果多维数据集计算使用计算所得的成员(使用CREATE MEMBER),它也会起作用。为什么现有的普通会员会导致此问题?感谢您提供任何线索。

0 个答案:

没有答案