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可以获得更多人的帮助 –