Элемент измерения как вычисленная мера в MDX - PullRequest
1 голос
/ 05 июня 2009

Мне нужно получить элемент измерения, возвращаемый в качестве вычисляемой меры.

Дано:

Размеры

  • Заказчик {ACME, EMCA, Универсальный импорт, Универсальный экспорт}
  • Продавец {Боб, Фред, Мэри, Джо}
  • Тип кредита {Директор, Менеджер}

Меры

  • Кредитная стоимость
  • Значение

Отношения

  • Клиент - это измерение фактов, которые содержат значение
  • Клиент, продавец и тип кредита - это измерения фактов, которые содержат кредитную стоимость

Я пытаюсь сделать следующее:

Создайте рассчитанные показатели, которые будут возвращать Продавцу с наибольшими $ s, зачисленными в роли для клиента. например, * * тысяча тридцать три

| Customer          | Director | Manager | Value |
|-------------------|----------|---------|-------|
| ACME              | Bob      | Fred    | 500   |
| EMCA              | Bob      | Fred    | 540   |
| Universal Imports | Mary     | Joe     | 1000  |
| Universal Exports | Mary     | Fred    | 33    |
  • ACME назначил Боба 490 в качестве директора
  • ACME присвоил Фреду 500 очков в качестве менеджера
  • В ACME Мэри зачислила 10 на пост директора

Я хотел бы использовать это как расчетную меру, которую я могу использовать в любом случае, когда Клиенты - это ряд.

1 Ответ

1 голос
/ 05 июня 2009

Если я правильно понимаю вашу проблему, что-то в этом духе должно сработать (конечно, вы должны использовать правильный уровень, иерархию и имена кубов):

   with
    member [Measures].[DirectorTemp] as topcount([Salesperson].[Salesperson].members,1,([Measures].[Credited Value],[Credit Type].[Director],[Customer].currentmember)).item(0).properties("Caption")   
    member [Measures].[Director] as iif([Measures].[DirectorTemp] = [Salesperson].UnknownMember.properties("caption"), null, [Measures].[DirectorTemp])
    member [Measures].[ManagerTemp] as topcount([Salesperson].[Salesperson].members,1,([Measures].[Credited Value],[Credit Type].[Manager],[Customer].currentmember)).item(0).properties("Caption") 
    member [Measures].[Manager] as iif([Measures].[ManagerTemp] = [Salesperson].UnknownMember.properties("caption"), null, [Measures].[ManagerTemp])


    select
        {[Measures].[Director],[Measures].[Manager],[Measures].[Value]} on 0,
        {[Customer].members} on 1
    from MyCube
...