我正在努力使用这个MDX,在行上应返回按日期排序的Date和Countries的交叉连接。显然,交叉连接期间Order函数中的“[Date]。[Fiscal Year] .CurrentMember”仍然是返回默认成员,而不是交叉连接上下文中的当前成员。也许我理解如何以及何时评估交叉连接中的集合是不正确的?
WITH
SET [DATE_main] AS
{
[Date].[Fiscal Year].&[2002],
[Date].[Fiscal Year].&[2003]
}
SET [CUSTOMER_ordered] AS
{
Order
(
[Customer].[Customer Geography].[Country].Members,
(
[Customer].[Customer Geography].CurrentMember,
[Date].[Fiscal Year].CurrentMember,
[Measures].[Internet Sales Amount]
),
BDESC
)
}
SELECT
{[Measures].[Internet Sales Amount]} ON COLUMNS,
CrossJoin
(
[DATE_main],
[CUSTOMER_ordered]
) ON ROWS
FROM [Adventure Works];
感谢您的任何建议, Endokr
答案 0 :(得分:0)
要获得预期结果,您必须将交叉连接放在订单中。
答案 1 :(得分:0)
这解决了我的问题,但我仍然想知道为什么[日期]。[财政年度] .CurrentMember不能像我在交叉连接中预期的那样工作:
WITH
SET [DATE_main] AS
{
[Date].[Fiscal Year].&[2002],
[Date].[Fiscal Year].&[2003]
}
SET [CUSTOMER_ordered] AS
{
Order
(
[Customer].[Customer Geography].[Country].MEMBERS,
(
[Customer].[Customer Geography].CurrentMember,
[Date].[Fiscal Year].CurrentMember,
[Measures].[Internet Sales Amount]
),
BDESC
)
}
SELECT
{[Measures].[Internet Sales Amount]} ON COLUMNS,
Generate
(
[DATE_main],
Order
(
CrossJoin
(
[Date].[Fiscal Year].CurrentMember,
[Customer].[Customer Geography].[Country].MEMBERS
),
(
[Measures].[Internet Sales Amount]
),
BDESC
)
) ON ROWS
FROM [Adventure Works];