Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / вопрос про scope в yukon / 5 сообщений из 5, страница 1 из 1
23.08.2005, 17:54
    #33230621
zmike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про scope в yukon
Добрый день.

итак, стало стыдно что есть много iif в CM

iif( IsLeaf([ItemGroup].[ItemGroup]),
Iif([Price] > 0, [Qty]*[Price], null),
Sum({[ItemGroup].[ItemGroup].children})
)

(в ItemGroup - 2 уровня)

тогда написали так для начала (как смогли, не бейте сильно):

CREATE MEMBER CURRENTCUBE.[MEASURES].Sum
AS Iif([Price] > 0, [Qty]*[Price], null),
VISIBLE = 1;
scope([Sum], [ItemGroup].[ItemGroup].[ItemGroup]);
This = Sum([ItemGroup].[ItemGroup].children);
end scope;
scope([Sum], [ItemGroup].[ItemGroup].[All]);
This = Sum([ItemGroup].[ItemGroup].children);
end scope;

вопросы следующие:

1. самый животрепещущий, у нас таких CM несколько десятков, после такого преобразования в script organazer становится очень много строчек - очень трудно разбираться, можно ли как-то сгруппировать
2. можно ли обойтись без end scope (тем более 2 раза).
2`. быстрее ли будет говорить scope(Root()) вместо end scope ?
3. можно ли, быстрее ли написать один scope с проверкой на level ?
4. можно ли? нужно ли стараться для ускорения засунуть
Iif([Price] > 0) в scope?

я понимаю что вопросов много, и возможно где-то есть простое объяснение. если так, то буду признателен если покажете.
...
Рейтинг: 0 / 0
23.08.2005, 22:29
    #33230866
Mosha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про scope в yukon
SCOPE statement может работать с mixed granularity, поэтому последние два можно обьединить в один. Но я рекоммендую просто определить физическую меру Sum а не вычисляемую, и написать такой скрипт:

SCOPE (Measures.Sum, Leaves(ItemGroup));
This = Qty*Price;
END SCOPE;

Это будет работать быстрее всего (и не надо никаких Sum)

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
25.08.2005, 18:56
    #33234919
zmike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про scope в yukon
MoshaSCOPE statement может работать с mixed granularity, поэтому последние два можно обьединить в один. Но я рекоммендую просто определить физическую меру Sum а не вычисляемую, и написать такой скрипт:

SCOPE (Measures.Sum, Leaves(ItemGroup));
This = Qty*Price;
END SCOPE;

Это будет работать быстрее всего (и не надо никаких Sum)

Моша
----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights

спасибо. просто и гениально...
со скоростью правда лучше не стало и пообще как-то все не очень.
но вот пока хотел бы заметить, возможно мы и ошибаемся, но.

1. все начинает сильно тормозить если эта конструкция scope стоит _до_ используемый в ней переменных
2. функции leaves нет в списке all на закладке functions (в Calculations)
3. если написать
SCOPE (Measures.Sum, Leaves(ItemGroup));
This = 1;
END SCOPE;
то он считает Sum - Int32, и если сумма перепрыгавает 32K - получаются отрецательные значения.
...
Рейтинг: 0 / 0
25.08.2005, 20:51
    #33235029
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про scope в yukon
zmike
то он считает Sum - Int32, и если сумма перепрыгавает 32K - получаются отрецательные значения.

если сумма перепрыгавает 32K и получаются отрецательные значения, то вы имеете дело с Int16.
...
Рейтинг: 0 / 0
25.08.2005, 21:11
    #33235042
zmike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос про scope в yukon
backfire zmike
то он считает Sum - Int32, и если сумма перепрыгавает 32K - получаются отрецательные значения.

если сумма перепрыгавает 32K и получаются отрецательные значения, то вы имеете дело с Int16.

согласен, принимается :)
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / вопрос про scope в yukon / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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