1

这没关系,并返回过去 30 天的默认度量值的总和:

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)
            )

如何将条款中的日期集转移WHEREWITH条款中?
我尝试了以下操作,但它会创建详细的错误消息:

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]
      )

执行查询...
30Days 集的定义包含循环引用。
执行完成

4

1 回答 1

3

我认为这是 SSAS 的一个限制,与查询的不同部分的执行处理有关;即使使用 SUB-QUERY(即 FROM (SELECT ...))而不是 WHERE 也不能解决问题。

您可以在架构级别定义您的集合:

CREATE STATIC SET [OurCube].[30Days] as ...

或者取决于您在会话级别的客户端应用程序:

CREATE SESSION STATIC SET SET [OurCube].[30Days] as ...
于 2013-07-20T00:19:44.207 回答