我想编写一个在 WHERE 语句中使用度量值的 MDX 表达式。
例如:假设我想显示在不同城市的商店销售产品的收入,但我只想计算价格超过 10 美元的销售产品的收入。
这是我尝试过的,但它不起作用:
WHERE ([MEASURES].[Price]>10)
如何使用 MDX 做到这一点?
如果您有权访问 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]
这只是一个建议......它取决于用于计算指标价格的聚合类型。