【发布时间】:2014-07-08 12:49:28
【问题描述】:
我有三个维度,[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|
| | | | | | | |
| +----- | | +----+ |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
+-------------+ +----------------+ +-------------+
以上是设计器中的结构。总结一下,我如何编写一个查看每个日期、回溯 30 天并创建一个范围的 MDX 查询。由此,查看所有事务并返回该范围的度量值[Measures].[N of Transactions] 和[Transaction].[Trader] 的总和?
【问题讨论】:
-
+1 结构良好的问题。但是有一个问题:在您的脚本中,您似乎只有一个日期 -
[Trade Date].[Calendar].[2014-02-16]在WHERE子句中指定?您还下载了 Adv Wks 多维数据集吗? ...将问题转换为针对该多维数据集的脚本非常有用,因为其他人也可以访问该多维数据集。 -
我会重新检查
WHERE-clause 并下载 AW-cube 看看我是否可以更清楚地指出我的问题!
标签: reporting-services ssas mdx olap business-intelligence