SSAS MDX - 根据另外两个维度从一个维度中选择

时间:2014-07-08 12:49:28

标签: reporting-services ssas mdx olap business-intelligence

我有三个维度,[Transaction][Trade Date][Report Date][Transaction]与两者都相关,我想为KPI定义一个函数,我在其中查找以下内容:

  • 对于作为交易存在交易的每个日期,请检查此日期以及30天后的范围,以查看[Trade Date][Report Date]之间的差异大于1的交易。
  • 我想在每个日期为每个交易者总结此范围内的[Measure].[N of Transactions]

我尝试过以下方法:

WITH 
    SET [Filtered] AS FILTER(NONEMPTY({[Trade Date].[Calendar].CurrentMember.lag(30):[Trade Date].[Calendar].CurrentMember}), 
                                DateDiff("d", 
                                    CDate([Report Date].[Calendar].CurrentMember.MemberValue), 
                                    CDate([Trade Date].[Calendar].CurrentMember.Lag(1).MemberValue)
                                ) > 1
                            )
    MEMBER [Measures].[x] AS SUM([Filtered].CURRENTMEMBER, [Measures].[N of Transactions])
SELECT [Measures].[x] on 0,
[Transaction].[Trader].&[some_id_here] on 1
FROM [Relevant]
WHERE [Trade Date].[Calendar].[2014-02-16]

但这显然不起作用。

                        +----------------+                        
                        |factTransaction |                        
                        |                |                        
                   +----+                +----+                   
+-------------+    |    |                |    |    +-------------+
|dimTradeDate |    |    |                |    |    |dimReportDate|
|             |    |    |                |    |    |             |
|             +-----    |                |    +----+             |
|             |         |                |         |             |
|             |         |                |         |             |
|             |         |                |         |             |
|             |         |                |         |             |
+-------------+         +----------------+         +-------------+


                                                             

以上是设计师的结构。总而言之,如何编写查看每个日期的MDX查询,回溯30天并创建范围。从这里,查看所有交易并返回该范围和[Measures].[N of Transactions]的度量[Transaction].[Trader]的总和?

1 个答案:

答案 0 :(得分:0)

我今天有一个类似的问题,并得到了回答。看看它是否以某种方式帮助你:

Mdx Using a member property as an argument for a strtomember

可能是同一个问题...在行定义之前评估set条件,因此,当你在Set上指定currentmember时,它不会获得所需的参数。我已经解决了我的问题,把这个集合放在成员定义中,并且,正如我之前看到过你的问题,认为它可能是类似的情况...

CF