2011-07-20 74 views
1

哈囉!SSIS MDX查詢問題

我對MDX中的查詢有一些問題。

我嘗試從我的多維數據集查詢損壞修復類型。接下來,我解釋我的維和事實表:

尺寸:DEMAGE修復類型

RepairTypeKey |名稱| RepairTypeAlternateKey | RepairSubTypeAlternateKey | SubName
0 |未知| 0 | NULL | NULL
1 |修復| 1 | 1 | 1沸騰
2 |替換| 2 | NULL | NULL
3 |修復| 1 | 2 | 2沸騰
4 |修復| 1 | 3 | 3沸騰

所以我在我的事實表「CLaimCosts」爲每個索賠一個RepairTypeKey。我填寫表格並設計一個立方體。 Dimension具有RepairType和SubRepairType的層次結構。我處理多維數據集,它工作正常:

  • DEMAGE修復類型
    • Hirarchy
      • 成員
        • 所有
          • 更換
          • 修復
            • 1熬
            • 2癤
            • 3癤
          • 未知

現在我用MDX創建查詢:

select 
    { 
     [Measures].[Claim Count], 
     [Measures].[Claim Cost Position Count], 
     [Measures].[Claim Cost Original], 
     [Measures].[Claim Cost Original Average], 
     [Measures].[Claim Cost Possible Savings], 
     [Measures].[Claim Cost Possible Savings Average], 
     [Measures].[Claim Cost Possible Savings Percentage] 
    } on 0, 

    NON EMPTY{ 
     NonEmpty([Damage Repair Type].[Hierarchy].Allmembers, ([Measures].[Claim Count])) 
    } on 1 

    from 
     Cube 

    where 
    (
     ({StrToMember(@DateFrom) : StrToMember(@DateTo)}) 
     ,([Claim Document Type].[Document Type].&[4]) 


    ) 

現在我嘗試運行查詢和它的作品,但我不得不多段中表示:

DEMAGE修復類型| Demage修復子類型|聲明次數| ....
NULL | NULL | 200000
替換| NULL | 150000
修理| NULL | 45000
修理| 1 Boil | 10000
修理| 2 Boil | 15000
修理| 3 Boil | 19000
未知| NULL | 1000

我的問題是第一行(總和)和第三行(總和)!我不需要這行,但我不知道如何過濾它們!我不需要這個Sums,因爲我擁有正確的Counts的Childs!

我該如何過濾?請幫幫我。它不起作用!

對不起我的英文不好,謝謝!

亞歷

+0

沒有人的想法?如果你有問題,你可以問!然後我可以嘗試更好地解釋。 – Alexo

+0

什麼是刪除行的邏輯(爲什麼不是第二個和最後一個)? ---檢查過濾器()和isEmpty()函數。 – ic3

+0

在MDX中沒有像其他科目那麼多的人,你必須更加寬容才能獲得「免費」答案;-)。 – ic3

回答

1
NonEmpty([Damage Repair Type].[Hierarchy].Allmembers, ([Measures].[Claim Count])) 

您可以使用:

NonEmpty([Damage Repair Type].[Hierarchy].Levels(2).Members, [Measures].[Claim Count]) 

這樣,我們排除所有成員。此外,當您使用關卡成員(例如[dim]。[hier]。[lvl] .Members)而不是層次結構成員(例如[dim]。[hier] .members)時,您不會獲得聚合成員 - 例如除非不可聚合的屬性層次結構之外的所有層次結構中普遍存在的所有成員。

+0

謝謝!有用! :)唯一一個問題,我無法修復:如果我通過Tablix顯示數據,它會顯示數據正確!如果我在Tablix的末尾創建一個總數,它將總和加起來!它總結了家長層次結構「修復」和兒童層次結構「1 Boil,2 Boils等」但它是相同的價值。 – Alexo

+0

只需從設置中刪除DRT.H.Levels(1).Members,然後它應該按照您的要求工作... –

+0

謝謝!有用!! :) – Alexo