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