MDX - несколько условий где и / или условия фильтра - PullRequest
2 голосов
/ 20 января 2012

Я заранее прошу прощения за, казалось бы, основной вопрос MDX. Я пытаюсь отфильтровать набор результатов MDX на основе нескольких комбинаций атрибутов измерения.

Это мой макет измерения / меры:

Размеры:

[AccidentDate]
Year
Quarter
Month
Day
Date

[ItemInformation] 
ItemState

[CoverageInformation] 
CoverageHiearchy
----UserLine
--- Coverage Code

Размеры:

CTDPaid

Теперь я хочу выбрать общую сумму из показателя [CTDPaid], сгруппированного по атрибуту [ItemInformation].ItemState. Однако я хотел бы отфильтровать набор результатов этого запроса на основе нескольких условий фильтрации.

Эти условия будут следующими и будут оцениваться отдельно :

1. [CoverageInformation].[CoverageHiearchy].&[98]&[002] and [ItemInformation].ItemState.&[MI]
2. [CoverageInformation].[CoverageHiearchy].&[98]&[004] and [ItemInformation].ItemState.&[MI]
3. [CoverageInformation].[CoverageHiearchy].&[98]&[004] and [ItemInformation].ItemState.&[IL]
4. [CoverageInformation].[CoverageHiearchy].&[98]&[002] and [ItemInformation].ItemState.&[IL]

По сути, если бы я перенес это на T-SQL, где условие, это было бы следующим:

, где

  (ItemState = 'MI' and CoverageCode = '002' and UserLine = '98')

и

  (ItemState = 'MI' and CoverageCode = '004' and UserLine = '98')

и

  (ItemState = 'IL' and CoverageCode = '002' and UserLine = '98')

и

  (ItemState = 'IL' and CoverageCode = '004' and UserLine = '98')

Помещение этого в слайсер MDX не будет работать, так как я считаю, что перекрестные объединения в одной иерархии не поддерживаются.

Использование функции filter () MDX у меня тоже не работает.

Я был бы очень признателен за помощь в формулировании правильного запроса MDX для правильной фильтрации моего набора результатов, как описано выше.

Спасибо за ваше время

1 Ответ

2 голосов
/ 20 января 2012

Попробуйте это решение:

SELECT 
     {...} On Columns,
     {...} On Rows
FROM  (Select 
{([CoverageInformation].[CoverageHiearchy].&[98]&[002], [ItemInformation].ItemState.&[MI]),
 ([CoverageInformation].[CoverageHiearchy].&[98]&[004], [ItemInformation].ItemState.&[MI])
 ([CoverageInformation].[CoverageHiearchy].&[98]&[004], [ItemInformation].ItemState.&[IL])
 ([CoverageInformation].[CoverageHiearchy].&[98]&[002], [ItemInformation].ItemState.&[IL])} On Columns
From [CubeName])
...