仓库结构:
FactSales :...,DateKey,RefernceId,SalesAmount,.....
DateKey - 日期维度键, ReferenceId - 销售ID, SalesAmount - 每次销售的销售额(不是每天)。
例如,在两天内有6个销售。因此在仓库中,事实表将是6行。DateKey ReferenceID SalesAmount
2015-04-09 - 001 - 9
2015-04-09 - 002 - 10
2015-04-09 - 003 - 11
2015-04-10 - 004 - 12
2015-04-10 - 005 - 13
2015-04-10 - 006 - 14
DimDate : DateKey, 年, 25美分硬币, 月, 日期, ......
我有SSAS多维立方体,我想查询图表的数据。图表X轴为Date,Y轴为SalesAmount。
好的,我必须显示2天的中位数。如果我们按天进行制粒,这不是问题:
MEMBER [Measures].[2d median] AS
(
MEDIAN(
[Date].[Date].CurrentMember.Lag(2) :
[Date].[Date].CurrentMember.Lag(1),
[Measures].[SalesAmount])
)
在这种情况下,MDX采用两个聚合值并计算meadian。 但是如何通过RefenceId(每次销售)对数据进行粒化?
在这种情况下,MDX必须取每个销售价值(2015-04-09 - 2015-04-10将是6个值)。
我不知道如何将Date维度连接到ReferenceId维度。 我应该创建具有附加属性的新层次结构吗?
像这样:ReferenceId - >日期 - >月 - >季度 - >一年。
答案 0 :(得分:0)
您可以将日期交叉加入每个ReferenceID吗?
MEMBER [Measures].[2d median] AS
(
MEDIAN(
[ReferenceID].currentmember *
{[Date].[Date].CurrentMember.Lag(2) : [Date].[Date].CurrentMember.Lag(1)}
,[Measures].[SalesAmount])
)