2014-09-05 74 views
0

這是我的MDX查詢:MDX報表呈現緩慢

with member [Measures].[Rent] as IIF(IsEmpty([Measures].[Budget]), NULL, [Measures].[Rent]) 

select {[Measures].[Rent]} on columns, 

      [Property].[Address].[All].children * 
     DESCENDANTS([Account].[Account Hierarchy].[Account Group].[Expenditures], 
        [Account].[Account Tree].[Account]) * 
        [Asset].[asset].[All].children on rows 
from [Master] 

當我發表意見[Asset] Dimension成員,我得到的結果,但我需要資產維度的MDX。

有沒有人有什麼想法?

+0

沒有看到多維數據集詳細信息,這很困難。也許http://technet.microsoft.com/en-us/library/cc966527.aspx可以幫助你? – FrankPl 2014-09-05 19:15:41

回答

0

在交叉連接它們之前,應該嘗試過濾尺寸。在你的情況下,如果預算爲空,就把它留下。另外,不要忘記添加NON EMPTY子句以從結果集中刪除空值:

with 
    member hasBudget as 
(
    IIF(IsEmpty([Measures].[Budget]), 0, 1) 
) 

member [Rent] as IIF(IsEmpty([Measures].[Budget]), NULL, [Measures].[Rent]) 
set accounts = Filter(DESCENDANTS([Account].[Account Hierarchy].[Account Group].[Expenditures],[Account].[Account Tree].[Account]), [Measures].[hasBudget] = 1) 

select non empty 
{ [Measures].[Rent] } on 0, 

non empty 
{ ([accounts] * (EXISTING [Asset].[asset].[All].children) * (EXISTING [Property].[Address].[All].children)) } on 1 

from (select { Filter([Asset].[asset].[All].children, [Measures].[hasBudget] = 1) } on 0 

from (select { Filter([Property].[Address].[All].children, [Measures].[hasBudget] = 1) } on 0 

from [Master]))