2009-12-02 95 views
1

看着下面的答案,我想用過濾器替換範圍。MDX用過濾器替換範圍

MDX - Concurrent calculations based on a "record time range"?

的MDX是:

with member [Measures].[TotalUsed] as sum({[Date].[YQM].&[20090501]:[Date].[YQM].&[20090907]}, [Measures].[Used]) 
select {[Measures].[Total Used]}on columns,  
      {[Color].[Colors].[All].MEMBERS}on rows 
from [Cube] 

我想用這樣的過濾器更換日期範圍:

with member [Measures].[TotalUsed] as sum(FILTER([Date].[YQM], [Date].[YQM] < [Date].[YQM].&[20090907]), [Measures].[Used]) 
select {[Measures].[Total Used]}oncolumns, 
      {[Color].[Colors].[All].MEMBERS}on rows 
from [Cube] 

什麼是條件語句尋找比較價值的條款?任何幫助將是偉大的!

謝謝!

回答

1

Filter語句需要一個SET,然後需要一個EXPRESSION來過濾。你可以把它放在你的SUM函數中。過濾器的表達式部分幾乎可以是任何東西,但是它必須在SET中的每個單元格上真/假。

- FILTER(SET,表達式)

這是一個有點困難,不知道你的數據的結構類似,但你statment可能最終會像下面這樣,過濾行少於50「未使用」爲你時間段,然後總結它們爲例。

`

WITH MEMBER [Measures].[TotalUsed] 
AS SUM (FILTER ([Date].[YQM].members, [Measures].[UnUsed] > 50), 
        [Measures].[Used]) 

SELECT {[Measures].[Total Used]} ON COLUMNS,   
{[Color].[Colors].[All].MEMBERS} ON ROWS 
FROM [Cube]