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

t.e. vam snachala nado proverit Оборот2 na NULL, a potom na 0
...
Рейтинг: 0 / 0
Люди, спасайте! Срочно!
    #32496844
Пашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чччеерт, тундра, я ж про это думал вчера, вот поторопишься, что называется...
Спасибо!
Но я правда очень сильно торопился ;-))
...
Рейтинг: 0 / 0
Люди, спасайте! Срочно!
    #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
Люди, спасайте! Срочно!
    #32497307
LordOfSilence
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пашка, а почему бы тебе не разрулить эту ситуацию в самой таблице фактов?
...
Рейтинг: 0 / 0
Люди, спасайте! Срочно!
    #32497336
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне так здается, что у него 2 таблицы фактов, но я бы их все равно через вьюху поженил.
...
Рейтинг: 0 / 0
Люди, спасайте! Срочно!
    #32497361
Пашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Две, ага, таблицы.
Да, конечно, была идея разрулить на уровне таблиц, но по многим причинам этого делать не следует. Вьюхи по 30 млн. строк мне не нравятся...:) Да и другие причины есть.
В общем хочу в олапе это сделать.
Щас вот думаем над правильным текстом калк.мембера.
...
Рейтинг: 0 / 0
Люди, спасайте! Срочно!
    #32497393
OR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
OR
Гость
Была аналогичная проблема со сложным условием в IIF.
К сожалению, "победил" только использованием вложенных IIF каскадом, особо не было времени разбираться, и хотя получилось некрасиво, но зато результат начало выдавать правильно.

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

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


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

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

Зря. Ничего в этом криминального нет, если только не сумасшедший их строил.
...
Рейтинг: 0 / 0
Люди, спасайте! Срочно!
    #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
Люди, спасайте! Срочно!
    #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
Люди, спасайте! Срочно!
    #32498038
Пашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ирина, но ведь 10 - это только сумма по полю Оборот2!
Чтобы это посчитать я мог ваще не делать Calc.Mamber, просто сложить все обороты2, так ведь? :-)) А я то хочу, чтобы в феврале подставился оборот 1 (ведь Оборот 2 - NULL)!!!!
И формулу то я правильную написал, только не работает она на итоговых уровнях, что, на мой взгляд - нелогично ;-\. Сейчас думаю над формулой, которая бы работала на Уровне All по-одному, а на уровне Leaf по-другому. Пока не придумывается, ведь измерений то у меня 4, надо как-то все их обработать ;-\
Чтобы при любой комбинации выбранных измерений получалась правильная сумма...
...
Рейтинг: 0 / 0
Люди, спасайте! Срочно!
    #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
Люди, спасайте! Срочно!
    #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
Люди, спасайте! Срочно!
    #32498552
Пашка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To backfire: На DWH то и дурак сделает (даже я), а я на MDX хочу :-))
Я уже на самом деле все сделал вручную, потому что срочно надо было, но куб то до ума надо довести, и ваще... зацепило :)
...
Рейтинг: 0 / 0
Люди, спасайте! Срочно!
    #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
17 сообщений из 17, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Люди, спасайте! Срочно!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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