2011-08-16 73 views
1

我想編寫一個在WHERE語句中使用度量值的MDX表達式。MDX - 過濾測量值?

例如:假設我想顯示不同城市的商店銷售產品的收入,但我只想計算售價超過10美元的產品的收入。

這是我試過,但它不工作:

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

我怎樣才能做到這一點使用MDX?

回答

1

如果你有一個訪問OLAP數據庫你可以創建另一個指標價格(例如用於在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] 

這只是一個建議...而這取決於其使用度量計算價格聚合類型。

+0

感謝您的回答!我確實可以訪問olap db,但問題是,價格限制應該由用戶輸入,因此我不知道限制將會是什麼。第二個腳本太複雜了,我想,我還有很多其他的選項供用戶輸入,所以mdx查詢將會太大而無法處理。但感謝您的幫助! – gusper