Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS mdx: Как вывести сразу два measures'a? / 4 сообщений из 4, страница 1 из 1
13.04.2005, 12:36
    #33013034
Moriarti
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS mdx: Как вывести сразу два measures'a?
Покажу на примере Foodmart 2000:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
With
  member [Time].[Итого] As  'Aggregate({[Time].[1997].[Q1].Children})'
  member [Product].[Итого] As  'Aggregate({[Product].[All Products].Children})'
select
  NON EMPTY  {[Time].[ 1997 ].[Q1].CHILDREN, [Time].[Итого]} on Columns,
  NON EMPTY  {[Product].CHILDREN, [Product].[Итого]} on Rows
from
  [Sales]
Where
  ([Measures].[Sales Count])

Это по мере [Sales Count],
а возможно ли сделать одновременное отображение сразу нескольких мер?
Например еще [Store Cost]?
...
Рейтинг: 0 / 0
13.04.2005, 13:19
    #33013181
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS mdx: Как вывести сразу два measures'a?
MoriartiПокажу на примере Foodmart 2000:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
With
  member [Time].[Итого] As  'Aggregate({[Time].[1997].[Q1].Children})'
  member [Product].[Итого] As  'Aggregate({[Product].[All Products].Children})'
select
  NON EMPTY  {[Time].[ 1997 ].[Q1].CHILDREN, [Time].[Итого]} on Columns,
  NON EMPTY  {[Product].CHILDREN, [Product].[Итого]} on Rows
from
  [Sales]
Where
  ([Measures].[Sales Count])

Это по мере [Sales Count],
а возможно ли сделать одновременное отображение сразу нескольких мер?
Например еще [Store Cost]?

так на столбцах

Код: plaintext
1.
2.
3.
4.
5.
6.
With
  member [Time].[Итого] As  'Aggregate({[Time].[1997].[Q1].Children})'
  member [Product].[Итого] As  'Aggregate({[Product].[All Products].Children})'
select
  NON EMPTY  {[Time].[ 1997 ].[Q1].CHILDREN, [Time].[Итого]}*{[Measures].[Sales Count],[Measures].[Store Cost]} on Columns,
  NON EMPTY  {[Product].CHILDREN, [Product].[Итого]} on Rows
from [Sales]

а так на строках

Код: plaintext
1.
2.
3.
4.
5.
6.
With
  member [Time].[Итого] As  'Aggregate({[Time].[1997].[Q1].Children})'
  member [Product].[Итого] As  'Aggregate({[Product].[All Products].Children})'
select
  NON EMPTY  {[Time].[ 1997 ].[Q1].CHILDREN, [Time].[Итого]} on Columns,
  NON EMPTY  {[Product].CHILDREN, [Product].[Итого]}*{[Measures].[Sales Count],[Measures].[Store Cost]} on Rows
from [Sales]

Но так значительно быстрее

Код: plaintext
1.
2.
3.
4.
5.
6.
With
  member [Time].[Итого] As  '[Time].[1997].[Q1])'
  member [Product].[Итого] As  '[Product].[All Products]'
select
  NON EMPTY  {[Time].[ 1997 ].[Q1].CHILDREN, [Time].[Итого]} on Columns,
  NON EMPTY  {[Product].CHILDREN, [Product].[Итого]}*{[Measures].[Sales Count],[Measures].[Store Cost]} on Rows
from [Sales]

а так еще быстрее

Код: plaintext
1.
2.
3.
select
  NON EMPTY  {[Time].[ 1997 ].[Q1].CHILDREN, [Time].[ 1997 ].[Q1]} on Columns,
  NON EMPTY  {[Product].CHILDREN, [Product].[All Products]}*{[Measures].[Sales Count],[Measures].[Store Cost]} on Rows
from [Sales]

а так быстрее некуда

Код: plaintext
1.
2.
3.
select
  {[Time].[ 1997 ].[Q1].CHILDREN, [Time].[ 1997 ].[Q1]} on Columns,
  NONEMPTYCROSSJOIN({[Product].CHILDREN, [Product].[All Products]},{[Measures].[Sales Count],[Measures].[Store Cost]}, {[Time].[ 1997 ].[Q1]},  2 ) on Rows
from [Sales]

при чем все дают одинаковый результат.

з.ы. Оптимизатор запросоа в AS2K (в отличие от AS2K5) никудышний, можно сказать, что его совсем нет, так что головой думать надо.
...
Рейтинг: 0 / 0
13.04.2005, 15:48
    #33013732
Moriarti
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS mdx: Как вывести сразу два measures'a?
Тааак, а что-то у меня примеры с умножением "*" не работают: ругается

Synatx error in axis definition near "*....

Пример с NONEMPTYCROSSJOIN понял, спасибо!
...
Рейтинг: 0 / 0
13.04.2005, 16:23
    #33013889
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MS AS mdx: Как вывести сразу два measures'a?
Извините, писал из головы без проверки.

вместо {...}*{...} надо писать {{...}*{...}}
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MS AS mdx: Как вывести сразу два measures'a? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]