SSAS MDX - 根据其他两个维度从一个维度中选择
Posted
技术标签:
【中文标题】SSAS MDX - 根据其他两个维度从一个维度中选择【英文标题】:SSAS MDX - Select from one dimension depending on two other dimensions 【发布时间】:2014-07-08 12:49:28 【问题描述】:我有三个维度,[Transaction]
、[Trade Date]
和 [Report Date]
。
[Transaction]
与两者相关,我想为 KPI
定义一个函数,在其中查找以下内容:
[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|
| | | | | | | |
| +----- | | +----+ |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
+-------------+ +----------------+ +-------------+
以上是设计器中的结构。总结一下,我如何编写一个查看每个日期、回溯 30 天并创建一个范围的 MDX 查询。由此,查看所有事务并返回该范围的度量值[Measures].[N of Transactions]
和[Transaction].[Trader]
的总和?
【问题讨论】:
+1 结构良好的问题。但是有一个问题:在您的脚本中,您似乎只有一个日期 -[Trade Date].[Calendar].[2014-02-16]
在WHERE
子句中指定?您还下载了 Adv Wks 多维数据集吗? ...将问题转换为针对该多维数据集的脚本非常有用,因为其他人也可以访问该多维数据集。
我会重新检查WHERE
-clause 并下载 AW-cube 看看我是否可以更清楚地指出我的问题!
【参考方案1】:
我今天有一个类似的问题,并得到了回答。看看它是否对你有帮助:
Mdx Using a member property as an argument for a strtomember
可能是同一个问题... set 条件在行定义之前进行评估,因此,当您在 Set 上指定 currentmember 时,它不会获得所需的参数。我已经解决了将集合放入成员定义中的问题,并且正如我之前看到您的问题一样,我认为这可能是类似的情况......
CF.
【讨论】:
以上是关于SSAS MDX - 根据其他两个维度从一个维度中选择的主要内容,如果未能解决你的问题,请参考以下文章