MDX - 过滤度量值?

时间:2011-08-16 13:06:37

标签: database filter mdx olap mondrian

我想编写一个在WHERE语句中使用度量值的MDX表达式。

例如:假设我想在不同城市的商店中显示销售产品的收入,但我只想计算价格超过10美元的已售产品的收入。

这是我尝试的但它不起作用:

WHERE ([MEASURES].[Price]>10)

如何使用MDX执行此操作?

1 个答案:

答案 0 :(得分:1)

如果您可以访问olap db,则可以创建另一个度量标准价格(例如,在DSV上为事实表创建表达式并在此字段上创建度量标准)并将其用于进一步计算。 但是,如果您无法访问db,则可以尝试以下脚本:

WITH
MEMBER [Measures].[Price10] AS
    'IIF([Measures].[Price] < 10,0,[Measures].[Price])'
MEMBER [Measures].[COST] AS
    '[Measures].[Price10]*[Measures].[Unit Count]'
SELECT
    {[Measures].[COST]} ON COLUMNS,
    {[Customer].[Customer Geography].[City].Members,[Customer].[Customer Geography].[All Customers]} ON ROWS
from [Adventure Works]

这只是一个建议......它取决于用于计算公制价格的聚合类型。