Проблема запроса MDIS в SSIS - PullRequest
1 голос
/ 20 июля 2011

Привет всем!

У меня есть небольшая проблема с моим запросом в MDX.

Я пытаюсь запросить типы восстановления повреждений из моего куба.Далее я объясню свой размер и таблицу фактов:

Размер: тип восстановления урона

RepairTypeKey |Имя |RepairTypeAlternateKey |RepairSubTypeAlternateKey |подимени0 | Неизвестный | 0 | NULL | NULL 1 | Ремонт | 1 | 1 |1 варить2 | Замена | 2 | NULL | NULL 3 | Ремонт | 1 | 2 |2 кипения4 | Ремонт | 1 | 3 |3 кипения

Таким образом, в моей таблице фактов "CLaimCosts" есть для каждого требования по одному RepairTypeKey.Я заполняю таблицы и разрабатываю куб.У измерения есть иерархия с RepairType и SubRepairType.Я обрабатываю куб, и он работает отлично:

  • Тип восстановления урона
    • 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])


    )

Теперь я пытаюсь запустить запрос, и он работает, но у меня много строкПоказано:

Тип ремонта урона |Подтип ремонта подтипа |Количество претензий |.... NULL | NULL |200000Замена | NULL |150000Ремонт | NULL |45000Ремонт |1 варить |10000Ремонт |2 варить |15000Ремонт |3 варить |19000Неизвестный | NULL |1000

Моя проблема - первый ряд (сумма) и третий ряд (сумма)!Мне не нужны эти строки, но я не знаю, как их отфильтровать!Мне не нужны эти Суммы, потому что у меня есть Чайлдс с правильным количеством!

Как я могу отфильтровать это?Пожалуйста, помогите мне.Это не работает!

Извините за мой плохой английский и спасибо!

Алекс

1 Ответ

1 голос
/ 21 июля 2011
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), вы не получаете агрегированные элементы -например, элемент All, который обычно присутствует во всех иерархиях, кроме неагрегируемых иерархий атрибутов.

...