Преобразование 3D-куба в таблицы (строки x столбцы)

Мне просто интересно, есть ли возможные способы отображения данных из 3D-куба в табличном формате без нарезки через MDX Query-

Предположим, у меня есть куб с тремя измерениями: класс (A, B, C, D..), поставщик (V1, V2, V3), период (2010, 2011), а мера будет SaleValue..

Теперь я хотел бы просмотреть записи, как это ..

**Class| Vendor|Period|SaleValue**

A | V1  | 2010  |  987
A | V2  | 2011  |  654
A | V3  | 2010  |  214
A | V1  | 2011  |  5643
A | V2  | 2010  |  698
A | V3  | 2011  |  212

B | V1  | 2010  |  224
B | V2  | 2011  |  668
B | V3  | 2010  |  741
B | V1  | 2011  |  3216
B | V2  | 2010  |  953
B | V3  | 2011  |  2114

C | V1  | 2010  |  159
C | V2  | 2011  |  852
C | V3  | 2010  |  369
C | V1  | 2011  |  147
C | V2  | 2010  |  123
C | V3  | 2011  |  654

Возможно ли это реализовать с помощью запросов MDX? Если да, пожалуйста, сообщите мне любой из примеров запросов.

Заранее спасибо..


person Bharathi    schedule 24.07.2012    source источник


Ответы (2)


Вы можете написать запрос Mdx, который даст что-то действительно близкое к табличному формату. Например:

SELECT {[Measures].[SaleValue]} ON COLUMNS,
NON EMPTY [Class].Members * [Vendor].Members * [Period].Members ON ROWS
FROM cube

Результат будет выглядеть так:

               |  SaleValue
(A, V1, 2010)  |  987
(A, V2, 2011)  |  654
(A, V3, 2010)  |  214
...

Если вы не хотите иметь промежуточные итоги, вы можете заменить [Class].Members на lowest_level_of_Class.Members или использовать покидает функцию.

person Benoit    schedule 24.07.2012
comment
Это выглядит хорошо. Но проблема в том, что (A, V1, 2010) появляется как одна ячейка, когда я пытаюсь получить их через Cellset (позже преобразованный в Datatable). Есть ли другой обходной путь для разделения результата? - person Bharathi; 25.07.2012
comment
@Bharathi (A, V1, 2010) должен находиться не в ячейке, а в оси набора ячеек. - person Benoit; 25.07.2012

Это должно помочь: http://blogs.msdn.com/b/jamiemac/archive/2008/03/10/unwinding-mdx-flattening-semantics-with-dmx.aspx

person daniel_aren    schedule 24.07.2012