powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / А зачем нужен SOLVE_ORDER.... и прочее
4 сообщений из 4, страница 1 из 1
А зачем нужен SOLVE_ORDER.... и прочее
    #32084709
GoodLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди! Подскажите пожалуйста!
Вот сижу, изучаю 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
А зачем нужен SOLVE_ORDER.... и прочее
    #32084995
Фотография Дед Маздай
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
А зачем нужен SOLVE_ORDER.... и прочее
    #32085019
GoodLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Дед Мазай тебе за ответ.
Я ещё только учусь всем этим примудростям, поэтому по поводу п.2., для меня казалось вполне есстественным увидеть на пересечии времени и продукта как издержки, так и выручку.
Просто я думал что это всё помещается во Where, а оказывается в оси.
Кажется я тогда не понимаю зачем это Where нужно?
...
Рейтинг: 0 / 0
А зачем нужен SOLVE_ORDER.... и прочее
    #32085065
Ирина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
4 сообщений из 4, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / А зачем нужен SOLVE_ORDER.... и прочее
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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