我有两种报告(发送报告和接收报告),以及两个角色扮演维度(发送者和接收者)。我正在尝试按发件人/收件人比较一个组织的每个报告的金额。
我目前的查询是:
with member [Measures].[SentAmount] as ( [Receiver].[Code].&[XXX],[Measures].[Sent] )
member [Measures].[ReceivedAmount_Temp] as
(
[Sender].[Code].&[XXX],
[Measures].[Received]
)
member [Measures].[ReceivedAmount] as
(
LINKMEMBER
(
[Sender].[Code].CURRENTMEMBER,[Receiver].[Code]
),
root([Sender]),
[Measures].[ReceivedAmount_Temp]
)
SELECT
{
[Measures].[SentAmount],
[Measures].[ReceivedAmount]
} ON COLUMNS,
NON EMPTY
{ (
[Sender].[Code].[Code].ALLMEMBERS
*[Sender].[Name].[Name].ALLMEMBERS
)} FROM MyCube
结果是正确的,但执行时间很长。特别是在我有 15-20 个措施的实际查询中。
是否可以以任何方式优化此查询?