SSAS - 'group by'等效的 MDX 计算



我的事实表如下所示:


票证 ID    价格          状态ID 1

100               1 2 100 1             

                          

              2 100               2

3              150 1
             

我正在使用 SSAS 为我的数据仓库创建 OLAP 多维数据集。 我不能使用聚合函数"总和"来衡量"总价",因为我将得到 450 美元而不是 350 美元(这是正确的塔塔尔)

问候

然后你仍然可以在 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-price]:

with member [cal-price] as
([Price],[IsMaxStatus].[IsMaxStatus].&[1])
select [cal-price] on 0
from [YourCube]

您也可以通过此度量组计算其他度量,而无需 dim [IsMaxStatus] 的过滤器

希望对您有所帮助。

www.mdx-helper.com

最新更新