我需要使用mdx
查询为每个当前成员获取上一个(上方)成员的销售。
以下mdx
适用于在普通查询中引入先前的成员值,但是如果我设置按Sales排序行以获得顶部,则前一个值是混合的并且它是dosn&t;按照订购的会员。
WITH
MEMBER [Measures].[PrevMemberSales] AS
'SUM(
[Markets].[Country].CurrentMember.PREVMEMBER
, [Measures].[Sales]
)'
SELECT
NON EMPTY
({[Measures].[Sales], [Measures].[PrevMemberSales]}) ON COLUMNS,
NON EMPTY
//ORDER(
{[Markets].[Country].Members}
// , [Measures].[Sales], BDESC)
ON ROWS
FROM [SteelWheelsSales];
答案 0 :(得分:0)
我只是通过对计算成员使用以下公式来解决问题:
WITH
MEMBER [Measures].[PrevMemberSales] AS
(Order(
[Markets].[Country].Members
,[Measures].[Sales]
,BDESC
).Item(
Rank(
[Markets].[Country].CurrentMember
,Order(
[Markets].[Country].Members
,[Measures].[Sales]
,BDESC
)
) - 2
).Item(0)
, [Measures].[Sales]
)
SELECT
NON EMPTY ({[Measures].[Sales], [Measures].[PrevMemberSales]}) ON COLUMNS,
NON EMPTY
ORDER(
{[Markets].[Country].Members}
, [Measures].[Sales], BDESC)
ON ROWS
FROM
[SteelWheelsSales]
结果还可以,但我的下一个问题是制作一个计算成员,为所有上述成员带来所有销售额的总和。 例如,对于法国销售,价值应为美国+西班牙销售,对于澳大利亚销售,我需要美国+西班牙+法国销售。
有什么想法吗?