Ssas MDX:从单元格中缓慢变化的维度获取属性

Ssas MDX:从单元格中缓慢变化的维度获取属性,ssas,mdx,Ssas,Mdx,我需要生成一个报告,显示多维数据集中的日常更改。例如,对于账户,我们在第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

我需要生成一个报告,显示多维数据集中的日常更改。例如,对于账户,我们在第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中实现这一点,甚至不知道这是否可能

诀窍是使用类似于
TopCount
的东西,然后使用
Item
与
成员【日期】【日期】。起始日期为【日期】【日期】【2013-05-01】
成员【日期】【日期】。结束日期为【日期】【日期】【2013-05-04】
成员旧余额为([余额],[日期].[日期].StartDate)
成员新余额为([余额],[日期].[日期].EndDate)
成员OldSalesRep AS
头号人物(
非空(
([Account].[SalesRep].[SalesRep],[Date].[Date]。开始日期,
[账户][AccountNumber].CurrentMember],[余额],
1)
.项目(0).项目(0).属性(“标题”)
成员NewSalesRep AS
头号人物(
非空(
([Account].[SalesRep].[SalesRep],[Date].[Date].EndDate,
[账户][AccountNumber].CurrentMember],[余额],
1)
.项目(0).项目(0).属性(“标题”)
在列上选择{OldBalance、NewBalance、OldSalesRep、NewSalesRep}
行上的[Account].[AccountNumber].[AccountNumber]
从多维数据集


但是,请记住,在大型多维数据集上,性能可能不太好。

诀窍是使用类似于
TopCount
的方法,然后使用
Item
与
成员【日期】【日期】。起始日期为【日期】【日期】【2013-05-01】
成员【日期】【日期】。结束日期为【日期】【日期】【2013-05-04】
成员旧余额为([余额],[日期].[日期].StartDate)
成员新余额为([余额],[日期].[日期].EndDate)
成员OldSalesRep AS
头号人物(
非空(
([Account].[SalesRep].[SalesRep],[Date].[Date]。开始日期,
[账户][AccountNumber].CurrentMember],[余额],
1)
.项目(0).项目(0).属性(“标题”)
成员NewSalesRep AS
头号人物(
非空(
([Account].[SalesRep].[SalesRep],[Date].[Date].EndDate,
[账户][AccountNumber].CurrentMember],[余额],
1)
.项目(0).项目(0).属性(“标题”)
在列上选择{OldBalance、NewBalance、OldSalesRep、NewSalesRep}
行上的[Account].[AccountNumber].[AccountNumber]
从多维数据集

但是,请记住,在大型多维数据集上,性能可能不太好

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