SSAS - '分组'等效MDX计算

时间:2017-05-25 11:46:13

标签: ssas mdx cube

我的事实表看起来像这样:


ticketID价格状态ID

1 100 1

2 100 1

2 100 2

3 150 1

我正在使用SSAS为我的数据仓库创建OLAP多维数据集。 我不能使用aggregateFunction'Sum'作为度量'总价',因为我将获得450 $而不是350 $(这是正确的价值)

此致

1 个答案:

答案 0 :(得分:1)

然后你仍然可以在db中添加一个视图:

select 
    ticketid,
    price,
    statusid,
    case when rn=1 then 1 else 0 end as IsMaxStatus 
from
(select ticketid,price,statusid, 
     row_number()over
     (partition by ticketid, price order by statusid desc) as rn 
     from yourFactTb 
) as fact  

然后添加一个维度[IsMaxStatus],它在您的多维数据集中包含两个0/1的记录,并将Dim-usage设置为常规,该度量组依赖于上面的事实表,然后添加一个计算的度量,如[cal-价格]具有以下公式:

with member [cal-price] as
([Price],[IsMaxStatus].[IsMaxStatus].&[1])

select [cal-price] on 0
from [YourCube]

您还可以通过此度量组计算其他度量,而不使用暗淡的过滤器[IsMaxStatus]

希望它有所帮助。

www.mdx-helper.com