SSIS MDX查询问题

时间:2011-07-20 12:39:29

标签: ssis filter ssas mdx

你好了!

我的MDX查询有点问题。

我尝试从多维数据集中查询损坏修复类型。接下来我解释我的维度和事实表:

尺寸:损坏修复类型

RepairTypeKey |名称| RepairTypeAlternateKey | RepairSubTypeAlternateKey |子名称
0 |未知| 0 | NULL | NULL
1 |修复| 1 | 1 | 1煮沸 2 |替换| 2 | NULL | NULL
3 |修复| 1 | 2 | 2个煮沸 4 |修复| 1 | 3 | 3个沸腾

所以我在每个索赔一个RepairTypeKey的事实表“CLaimCosts”中都有。我填写表并设计一个立方体。 Dimension有一个带有RepairType和SubRepairType的Hirarchy。我处理立方体并且工作正常:

  • Demage Repair Type
    • Hirarchy
      • 会员
        • 所有
          • 替换
          • 维修
            • 1 Boil
            • 2 Boils
            • 3 Boils
          • 未知

现在我使用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 Repair Type | Demage修复子类型|索赔计数| .... NULL | NULL | 200000
更换| NULL | 150000
修理| NULL | 45000
修理| 1煮沸| 10000
修理| 2煮沸| 15000
修理| 3煮沸| 19000
未知| NULL | 1000

我的问题是frist Row(Sum)和第三行(Sum)!我不需要这行但我不知道如何过滤它们!我不需要这个Sums因为我有正确的计数的孩子!

我如何过滤这个?请帮我。它不起作用!

抱歉我的英文不好,谢谢你!

亚历

1 个答案:

答案 0 :(得分: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)时,您不会获得聚合成员 - 例如除了不可聚合的属性层次结构之外的所有层次结构中通常存在的所有成员。