如何在MDX查询中使用MEDIAN函数到其他层次结构?

时间:2016-04-22 14:01:02

标签: ssas aggregate mdx hierarchy median

仓库结构:

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 - >日期 - >月 - >季度 - >一年。

1 个答案:

答案 0 :(得分:0)

您可以将日期交叉加入每个ReferenceID吗?

MEMBER [Measures].[2d median] AS
(
MEDIAN(
  [ReferenceID].currentmember *
  {[Date].[Date].CurrentMember.Lag(2) : [Date].[Date].CurrentMember.Lag(1)} 
 ,[Measures].[SalesAmount])
)