MDX: ср. разширено използване

Достигам лимита на основните си MDX познания по проблем, ако някой има идея, всяка помощ ще е добре дошла

Ситуация

Това е йерархията, с която бих искал да се справя. В моята fact_table имам мярка [Measures] [Sales].

[All Management].[TemplateMgt].[CityMgt].[DistricMgt].[StoreMgt]

[All Management].[TMP-00.002].[London].[DistricMgt].[Shoe001]
[All Management].[TMP-00.002].[London].[DistricMgt].[Hat001]
[All Management].[TMP-00.002].[London].[DistricMgt].[Electronic001]
[All Management].[TMP-00.002].[Paris].[DistricMgt].[Shoe001]
[All Management].[TMP-00.002].[Paris].[DistricMgt].[Hat001]
[All Management].[TMP-00.002].[Paris].[DistricMgt].[Electronic001]
[All Management].[TMP-00.002].[Madrid].[DistricMgt].[Shoe001]
[All Management].[TMP-00.002].[Madrid].[DistricMgt].[Hat001]
[All Management].[TMP-00.002].[Madrid].[DistricMgt].[Electronic001]

Проблем

За даден CityMgt бих искал да имам три стойности

[Мерки].[Кур]: Продажбите на StoreMgt на дадения CityMgt (Така че за Мадрид вземете стойността [Shoe001], [Hat001], [Electronic001])

[Измервания].[Средно]: средните продажби на групата StoreMgt по StoreMgt, имащи една и съща TemplateMgt AVG([Лондон].[Shoe001] + [Париж].[Shoe001] + [Мадрид].[ Shoe001])

[Мерки].[Макс]: максималните стойности на продажбите на StroreMgt със същия TemplateMgt MAX([Лондон].[Shoe001], [Париж].[Shoe001], [Мадрид].[Shoe001] )

С други думи, бих искал да имам изход, който ще има тази структура

  Shoe001    |  Hat001     |  Electronic001
 ----------------------------------------------------
 CUR|AVG|MAX | CUR|AVG|MAX  | CUR|AVG|MAX
 ----------------------------------------------------

Какво имам досега

WITH  MEMBER [Measures].[Cur] AS (...)
          MEMBER [Measures].[Avg] AS (...)
          MEMBER [Measures].[Max] AS (...)

SELECT {[Measures].[Cur], [Measures].[Avg], [Measures].[Max]} ON COLUMNS,
{FILTER({DESCENDANTS([All Management].CurrentMember, [StoreMgt])}, [All Management].Parent.Parent = "Madrid" } ON ROWS
from [MyCube]

Проблемът ми е, че не знам какво да поставя в атрибутите на член Cur/Avg/Max, така че моите данни да могат да се третират според StoreMgt (вид groupby)

Ако някой може да ме просвети, ще съм благодарен.

Сърдечно,


person Spredzy    schedule 30.05.2011    source източник


Отговори (2)


За да получите средната стойност, можете да дефинирате нови йерархии (атрибути, ако сте в SSAS). Един за страната и друг за вида продукт. След като ги получите, статистическите изчисления са въпрос на игра с текущия член и [Всички].

Можете да изберете друга версия -> SUM( FILTER(..members, condition), value)... това може да е бавно, наистина бавно.

Като цяло за този вид изчисление можете да използвате това, което наричаме статистически или полезни измерения (вижте).

person ic3    schedule 30.05.2011

Не съм напълно сигурен, че следната заявка ще работи, надявам се, че предава идеята,

WITH MEMBER [All Management].[Sales_AVG] AS AVG({[All Management].Members},                           
                                                       [Measures].currentMember)
     MEMBER [All Management].[Sales_MAX] AS MAX({[All Management].Members},        
                                                        [Measure].currentMember)
SELECT {[Measures].[Sales]} ON COLUMNS,
       {[All Management].Members, [All Management].[Sales_AVG], 
         [All Management].[sales_Max]} ON ROWS FROM [MYCUBE] WHERE
       {DESCENDANTS([All Management].CurrentMember, [StoreMgt])}
person GauravJ    schedule 05.06.2011