Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Люди, спасайте! Срочно! / 17 сообщений из 17, страница 1 из 1
26.04.2004, 12:34
    #32496568
Пашка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Блин, нарвался на ситуевину, этот MS AS не считает итоги по-человечески!!
Есть виртуальный куб. Состоит из двух одинаковых по структуре кубов.
И в этом вирт. кубе есть две меры - Оборот1 и Оборот2. от первого и второго куба соответственно. И мера Оборот2 должна иметь приоритет. Т.е., если Оборот2 ненулевой, то надо в вирт.кубе брать его, если Оборот2 нулевой (а такое может быть), то берем Оборот1.
Пишу в Calc.Member простую штуку - iif(Оборот2>0,Оборот2,Оборот1).
Казалось бы куда проще! Но эта зараза неправильно суммирует, когда все измерения свернуты! Т.е. общая сумма ВСЕГДА выдается только по мере Оборот2, хотя она часто бывает нулевая.
Т.е. вывожу какое-нить измерение в строки, и вижу сумму внизу не ту, которая получается, если сложить все измерения вручную!
Че за бред, как с этим побороться, всю башку блин уже сломал!!!
...
Рейтинг: 0 / 0
26.04.2004, 13:27
    #32496710
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
razlichaite NULL i 0.

t.e. vam snachala nado proverit Оборот2 na NULL, a potom na 0
...
Рейтинг: 0 / 0
26.04.2004, 14:09
    #32496844
Пашка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Чччеерт, тундра, я ж про это думал вчера, вот поторопишься, что называется...
Спасибо!
Но я правда очень сильно торопился ;-))
...
Рейтинг: 0 / 0
26.04.2004, 14:26
    #32496931
Пашка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Вот я рано то обрадовался..
И на NULL проверял и IsEmpty и > 0 - все засунул. Ни хрена, считает по-старому :-(. Никакого эффекта!
Код: plaintext
1.
Iif(not(IsEmpty([Measures].[Оборот2])) and not([Measures].[Оборот2] is NULL) and ([Measures].[Оборот2]> 0 ), [Measures].[Оборот2],  [Measures].[Оборот1])


Че тут не так то? Если не NULL И не пусто И >0 - то Оборот2, иначе оборот1.
Почему он сумму считает только по оборот2!!! Даже когда вместо него подставляется оборот1 ?!?!

P.S. По-отдельности оставлять not NULL, IsEmpty и >0 пробовал! :-)
...
Рейтинг: 0 / 0
26.04.2004, 17:22
    #32497307
LordOfSilence
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Пашка, а почему бы тебе не разрулить эту ситуацию в самой таблице фактов?
...
Рейтинг: 0 / 0
26.04.2004, 17:32
    #32497336
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Мне так здается, что у него 2 таблицы фактов, но я бы их все равно через вьюху поженил.
...
Рейтинг: 0 / 0
26.04.2004, 17:43
    #32497361
Пашка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Две, ага, таблицы.
Да, конечно, была идея разрулить на уровне таблиц, но по многим причинам этого делать не следует. Вьюхи по 30 млн. строк мне не нравятся...:) Да и другие причины есть.
В общем хочу в олапе это сделать.
Щас вот думаем над правильным текстом калк.мембера.
...
Рейтинг: 0 / 0
26.04.2004, 17:54
    #32497393
OR
OR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Была аналогичная проблема со сложным условием в IIF.
К сожалению, "победил" только использованием вложенных IIF каскадом, особо не было времени разбираться, и хотя получилось некрасиво, но зато результат начало выдавать правильно.

Может глюк MS AS?
...
Рейтинг: 0 / 0
26.04.2004, 19:37
    #32497532
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Я не поленился и сделал у себя на примере так

Код: plaintext
iif([Measures].[Оборот2]<> 0 , [Measures].[Оборот2], [Measures].[Оборот1])


Прекрасно все работает.

У вас состав измерений в виртуальном кубе какой? Все измерения присутствуют в обоих кубах, или есть какое что только в одном физическом кубе есть?
...
Рейтинг: 0 / 0
26.04.2004, 19:40
    #32497539
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Вьюхи по 30 млн. строк мне не нравятся

Зря. Ничего в этом криминального нет, если только не сумасшедший их строил.
...
Рейтинг: 0 / 0
27.04.2004, 09:35
    #32497902
Пашка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Да нет, работает то оно работает, но только на конечных уровнях (Leaf).
А вот если сумму по строкам или по столбцам смотреть в клиенте (Excel, ProClarity), то считается только мо мере Оборот2.
Т.е. наверное придется на разных уровнях использовать разные формулы подсчета.
Пока других предложений нет (ну, кроме вьюх).
А куб такой: Виртуальный куб. Измерения Компания, Филиал, Дата, КаналСбыта.
Измерения все равноправные, т.е. я имею в виду, что в каждом филиале одинаковый набор компаний.
Меры такие (обычные, аддитивные): Оборот1 и оборот2. Оборот1 есть всегда, Оборот2 - лишь по некоторым компаниям и в некоторых филиалах. И задача простая - при наличии Оборота2 брать его, если его нет - то брать Оборот1.
Чтобы было совсем понятно, на экране я вижу следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
Компания1 100р
Компания2 200р
Компания3 300р
 --------------
 
Итого:    200р

А все потому, что по Компании2 есть оборот2, вот только он в общую сууму и попадает.
...
Рейтинг: 0 / 0
27.04.2004, 10:28
    #32498003
Ирина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Пашка, по-моему Вы получаете именно то что просите, если в одном из листьев NULL, это ведь не значит что у его родителя NULL.
Например, если у оборот_2 в январе 5, феврале NULL, марте 5, то в первом квартале 10, а не NULL, правильно? T.e. нужно более хитрое вычисляемое измерение сделать, которое будет считать сумму само.

Ирина

----------------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rightsг
...
Рейтинг: 0 / 0
27.04.2004, 10:41
    #32498038
Пашка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Ирина, но ведь 10 - это только сумма по полю Оборот2!
Чтобы это посчитать я мог ваще не делать Calc.Mamber, просто сложить все обороты2, так ведь? :-)) А я то хочу, чтобы в феврале подставился оборот 1 (ведь Оборот 2 - NULL)!!!!
И формулу то я правильную написал, только не работает она на итоговых уровнях, что, на мой взгляд - нелогично ;-\. Сейчас думаю над формулой, которая бы работала на Уровне All по-одному, а на уровне Leaf по-другому. Пока не придумывается, ведь измерений то у меня 4, надо как-то все их обработать ;-\
Чтобы при любой комбинации выбранных измерений получалась правильная сумма...
...
Рейтинг: 0 / 0
27.04.2004, 10:58
    #32498097
Ирина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Я не правильно выразилась, Вы получаете то, что написанно в формуле. На нижнем уровне:
5(из оборот_2), 8(из оборот_1), (из оборот_2)5,
на итоговом уровне оборот 10 уже подсчитан системой(5+5) и он не NULL, поэтому получаем 10. Все логично и вы движетесь в правильном направлении.

Ирина
<BR>
<BR>----------------------------------------------------
<BR>This posting is provided "AS IS" with no warranties, and confers no rights
...
Рейтинг: 0 / 0
27.04.2004, 11:14
    #32498152
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
Nakonec to ya ponyal vashu problemu, Pavel.

T.e. problema vasha bila sovsem ne v formule. Vasha formula schitala pravilno, vot tolko vi hoteli sovsem drugogo.
To chto vi hotite videt - nado reshat na urovne DWH.
...
Рейтинг: 0 / 0
27.04.2004, 13:22
    #32498552
Пашка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
To backfire: На DWH то и дурак сделает (даже я), а я на MDX хочу :-))
Я уже на самом деле все сделал вручную, потому что срочно надо было, но куб то до ума надо довести, и ваще... зацепило :)
...
Рейтинг: 0 / 0
27.04.2004, 14:36
    #32498753
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Люди, спасайте! Срочно!
delaite v DWH, to chto dolzhno provoduitsya nad atomarnimi dannimi i v MDX, to chto delaetsya nad aggregirovannimi. Kak govoritsya "...kesaryu kesarevo...".
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Люди, спасайте! Срочно! / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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