我需要构建一个显示多维数据集中日常更改的报告。例如。对于帐户,我们在第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
除帐号外,[帐户]维度还将SalesRepName作为属性,SalesRepName的值可能会随时间变化,使[帐户]变为缓慢变化的维度。我想看到的是:
OldBalance NewBalance OldSalesRep NewSalesRep
ACT123 1050.25 1048.29 John Smith John Smith
ACT345 950.08 1421.92 John Smith George Fisher
但我不知道如何在MDX中实现这一点,以及它是否可行。
答案 0 :(得分: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
但请记住,在大型立方体上,性能可能不太好。