0
我想創建一個自定義集合,它排除來自另一個層次結構的條目,並且因此我不能使用except函數。我已經嘗試過,但是我收到一條錯誤消息,指出在查詢中多次顯示層次結構。有人可以請教我如何以最好的方式做到這一點?MDX:創建一個不包括來自不同層次的條目的集合
WITH
SET [Market1] AS {
[Market].[Market].[Market].&[103],
-([Agency].[Nationality - Consortium - Agency].[Nationality].&[111],
[Agency].[Nationality - Consortium - Agency].[Nationality].&[116],
[Agency].[Nationality - Consortium - Agency].[Nationality].&[242],
[Agency].[Nationality - Consortium - Agency].[Nationality].&[134])
}
編輯:這是我的查詢(大部分是從查詢構建器構建)
WITH
SET [Market1] AS SUM((
[Market].[Market].[Market].&[103],
EXCEPT({[Agency].[Nationality - Consortium - Agency].[Nationality].ALLMEMBERS},
{[Agency].[Nationality - Consortium - Agency].[Nationality].&[111],
[Agency].[Nationality - Consortium - Agency].[Nationality].&[116],
[Agency].[Nationality - Consortium - Agency].[Nationality].&[242],
[Agency].[Nationality - Consortium - Agency].[Nationality].&[134]}
)), [Measures].[Price])
SELECT NON EMPTY [Market1] ON ROWS
FROM (SELECT ({ StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]") }) ON COLUMNS
FROM (SELECT ({ [Travel Type].[Travel Type].&[101],
[Travel Type].[Travel Type].&[102],
[Travel Type].[Travel Type].&[103] }) ON COLUMNS
FROM (SELECT ({ [Departure Date].[Year].&[2017] }) ON COLUMNS
FROM [Booking])))
WHERE ([Departure Date].[Year].&[2017],
[Travel Type].[Travel Type].CurrentMember,
StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]"))
EDIT2:託管砍一起
WITH
SET [Market1] AS (
[Market].[Market].[Market].&[103],
EXCEPT({[Agency].[Nationality - Consortium - Agency].[Nationality].ALLMEMBERS},
{[Agency].[Nationality - Consortium - Agency].[Nationality].&[111],
[Agency].[Nationality - Consortium - Agency].[Nationality].&[116],
[Agency].[Nationality - Consortium - Agency].[Nationality].&[242],
[Agency].[Nationality - Consortium - Agency].[Nationality].&[134]}
))
MEMBER Agg AS SUM
([Market1], [Measures].[Price]
)
SELECT NON EMPTY Agg ON COLUMNS
FROM (SELECT ({ StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]") }) ON COLUMNS
FROM (SELECT ({ [Travel Type].[Travel Type].&[101],
[Travel Type].[Travel Type].&[102],
[Travel Type].[Travel Type].&[103] }) ON COLUMNS
FROM (SELECT ({ [Departure Date].[Year].&[2017] }) ON COLUMNS
FROM [Booking])))
WHERE ([Departure Date].[Year].&[2017],
[Travel Type].[Travel Type].CurrentMember,
StrToMember("[Report Date].[Report Date].&[" + Str(Int(CDbl(Now()) - 38718)) + "]"))
謝謝,它的工作原理!我怎麼總結一切?現在我得到所有機構的所有行。我已經嘗試了sum函數,但是我得到了一個錯誤消息,說函數需要一個元組作爲參數,我已經把原來的文章中的查詢 – joddm
你不能在SET中求和 - 你必須創建計算成員(就像你在Edit2中)或者直接在查詢中執行。在未來,如果你有另外一個問題時詢問單獨的查詢會更好。通過這種方式,SUM可以獲得更多人的幫助 –