1

我需要构建一个显示多维数据集中日常变化的报告。例如,我们在第 X 天显示余额,在第 Y 天显示余额。我通过以下方式实现它:

WITH
MEMBER OldBalance AS ([Balance], [Date].[Date].[2013-05-01]) -- start date
MEMBER NewBalance AS ([Balance], [Date].[Date].[2013-05-04]) -- end date
SELECT {OldBalance, NewBalance} ON COLUMNS
[Account].[AccountNumber].[AccountNumber] ON ROWS
FROM TheCube

这为每个帐户显示了两列,每个人都很高兴:

        OldBalance   NewBalance
ACT123   1050.25        1048.29
ACT345    950.08        1421.92

除了账号,[Account]维度还有SalesRepName作为属性,SalesRepName的值可能会随时间变化,使得[Account]是一个渐变维度。我想看到的是类似的东西:

        OldBalance   NewBalance  OldSalesRep  NewSalesRep
ACT123   1050.25        1048.29  John Smith   John Smith
ACT345    950.08        1421.92  John Smith   George Fisher

但我不知道如何在 MDX 中实现这一点,甚至不知道它是否可能。

4

1 回答 1

1

诀窍是使用类似的东西TopCount然后Item

WITH
MEMBER [Date].[Date].StartDate AS [Date].[Date].[2013-05-01]
MEMBER [Date].[Date].EndDate AS [Date].[Date].[2013-05-04]
MEMBER OldBalance AS ([Balance], [Date].[Date].StartDate)
MEMBER NewBalance AS ([Balance], [Date].[Date].EndDate)
MEMBER OldSalesRep AS 
    TopCount(
        NonEmpty(
            ([Account].[SalesRep].[SalesRep], [Date].[Date].StartDate, 
            [Account].[AccountNumber].CurrentMember), [Balance]), 
        1)
    .Item(0).Item(0).Properties("Caption")
MEMBER NewSalesRep AS 
    TopCount(
        NonEmpty(
            ([Account].[SalesRep].[SalesRep], [Date].[Date].EndDate, 
            [Account].[AccountNumber].CurrentMember), [Balance]), 
        1)
    .Item(0).Item(0).Properties("Caption")
SELECT {OldBalance, NewBalance, OldSalesRep, NewSalesRep} ON COLUMNS
[Account].[AccountNumber].[AccountNumber] ON ROWS
FROM TheCube

但是请记住,在大型立方体上,性能可能不是那么好。

于 2013-05-20T20:07:23.853 回答