SSAS的问题:集合的定义导致循环引用
这是确定的,并返回过去30天的默认度量值之和:SSAS的问题:集合的定义导致循环引用,ssas,mdx,Ssas,Mdx,这是确定的,并返回过去30天的默认度量值之和: SELECT FROM [OurCube] WHERE ( closingperiod( [Date].[Date - Calendar Month].[Calendar Day], [Date].[Date - Calendar Month].defaultmember ): closingperiod(
SELECT
FROM [OurCube]
WHERE (
closingperiod(
[Date].[Date - Calendar Month].[Calendar Day],
[Date].[Date - Calendar Month].defaultmember
):
closingperiod(
[Date].[Date - Calendar Month].[Calendar Day],
[Date].[Date - Calendar Month].defaultmember
).ITEM(0).LAG(30)
)
如何将WHERE
子句中的日期集转移到WITH
子句中?我尝试了以下操作,但它创建了详细的错误消息:
WITH
SET [30Days] AS
{
closingperiod(
[Date].[Date - Calendar Month].[Calendar Day],
[Date].[Date - Calendar Month].defaultmember
):
closingperiod(
[Date].[Date - Calendar Month].[Calendar Day],
[Date].[Date - Calendar Month].defaultmember
).ITEM(0).LAG(30)
}
SELECT
FROM [OurCube]
WHERE (
[30Days]
)
正在执行查询…30天集合的定义包含循环引用。
执行完毕
我认为这是SSA的一个局限性,与查询不同部分的执行处理有关;即使使用子查询(即FROM(SELECT…)而不是WHERE也无法解决问题 您可以在架构级别定义集合:
CREATE STATIC SET [OurCube].[30Days] as ...
或者取决于会话级别的客户端应用程序:
CREATE SESSION STATIC SET SET [OurCube].[30Days] as ...
+谢谢你,马克。您提到的
子查询
和不同级别的声明这两个主题对我来说都是新的,听起来值得探讨。离题:如何呈现MDX
的结果?有趣-如果不使用SSAS
,如何构建多维数据集?因此,不在SSRS
或非MS多维数据集工具中呈现结果?