Гость
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / А зачем нужен SOLVE_ORDER.... и прочее / 4 сообщений из 4, страница 1 из 1
26.12.2002, 13:37
    #32084709
GoodLeo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А зачем нужен SOLVE_ORDER.... и прочее
Люди! Подскажите пожалуйста!
Вот сижу, изучаю MDX и Microsoft Analisys Services и не могу понять.
1. В конструкции with member ... имеется параметр SOLVE_ORDER.
Но не могу понять по BOL зачем он нужен. Думал что он определяет порядок расчёта member перечисленных в WITH. Но меня номера у взаимозависимых member и результат одинаков.
2. А как в MDX Sample Applications вывести несколько Measures.
Например есть Measures:
- Кол
- Деньги
Есть измерения
- дата
- товары

Строю такой запрос:
select [Товары].members on columns,
[Дата].members on rows
from [Продажи]
where [Measures].[Кол]

... и всё пучком. Но надо вывести и [Measures].[Кол], а может и с десяток других Measures. Куда их вставить?

3. Измерение "Товары" типа parent - child. Я так думал что если применить конструкцию типа [Товары].members, то в MDX Sample Applications они выведутся ввиде иерархии (количество столбцов под измерение будет равно количеству уровней). Но всё измерение выводится в один столбец.
Может я что ни так делаю?

Заранее благодарен за помощь!
...
Рейтинг: 0 / 0
27.12.2002, 00:10
    #32084995
Дед Маздай
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А зачем нужен SOLVE_ORDER.... и прочее
1. Если на одну ячейку приходится несколько пользовательских вычислений, то SOLVE ORDER назначает победителя, отвергая остальных. CALCULATION PASS позволяет применить несколько вычислений к одной ячейке и установить порядок их выполнения.

2. select {Measures.[Store Sales], Measures.[Store Cost]} on columns, Product.Members on rows from Sales, какие проблемы? Хотите увидеть меры вместе с временем - select (Time.Members * {Measures.[Store Sales], Measures.[Store Cost]}) on columns, Product.Members on rows from Sales. Что эквивалентно CrossJoin(Time.Members, {Measures.[Store Sales], Measures.[Store Cost]}). В where засунуть несколько членов одного измерения нельзя, п.ч. это противоречит здравому смыслу. Если гипотетически представить себе запрос типа select Time.Members on columns, Product.Members on rows from Sales where {Measures.[Store Sales], Measures.[Store Cost]}, то какие цифры вы ожидаете увидеть на пересечении времени и продукта: выручку или издержки?

3. Да оно не только parent-child, оно и стандартное измерение в один столбец показывает. Только CrossJoin в несколько. Почему? Потому что оно так написано. Excel, например, под каждый раскрытый уровень отводит новый столбец. Перепишите разноску ADOMD.CellSet по MSFlexGrid'у на свой вкус, поигравшись со свойствами LevelDepth / LevelName у Axis.Position.Member.
...
Рейтинг: 0 / 0
27.12.2002, 07:23
    #32085019
GoodLeo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А зачем нужен SOLVE_ORDER.... и прочее
Спасибо Дед Мазай тебе за ответ.
Я ещё только учусь всем этим примудростям, поэтому по поводу п.2., для меня казалось вполне есстественным увидеть на пересечии времени и продукта как издержки, так и выручку.
Просто я думал что это всё помещается во Where, а оказывается в оси.
Кажется я тогда не понимаю зачем это Where нужно?
...
Рейтинг: 0 / 0
27.12.2002, 09:44
    #32085065
Ирина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А зачем нужен SOLVE_ORDER.... и прочее
Where нужно для того, что бы указать в контексте какого члена(из тех измерений, которые Вы не хотите на оси) вычислять ячейку. Если Вы его не укажите, то вычисление будет использовать то, что называется Default Member, обычно первый член измерения.
Например, если у вас еще есть измерение время(2000, 2001, 2002г), и его нет ни на одной из осей, то вычислится кол-во для 2000 года, а не для 2002 как Вы хотели, или если есть у времени "All", то вычислится за все года, а не за 2002.

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / А зачем нужен SOLVE_ORDER.... и прочее / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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