Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Итог по Calculated Member-ам / 20 сообщений из 20, страница 1 из 1
25.11.2004, 10:33
    #32799112
Kaktus_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Инструменты: MS AS и Excel 2000.

Если объяснить на пальцах, то выглядит проблема так:
В таблице фактов имеется столбец "Количество товара на складе в штуках" и столбец "Нормативный вес одной штуки".
"Вес в килограммах" каждого товара это Calculated Member, который равен произведению штук на нормативный вес.
Проблема появляется в итогах по "Весу в килограммах", которые расчитываются как (итог по колонке штук) * (итог по колонке нормативного веса).

Подскажите, плс, как можно добиться чтобы итог по Calculated Member расчитывался как сумма по колонке, а не как произведение соответствующих итогов?
...
Рейтинг: 0 / 0
25.11.2004, 11:03
    #32799190
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
надо новую меру создать с source column
"Количество товара на складе в штуках" * "Нормативный вес одной штуки"
...
Рейтинг: 0 / 0
25.11.2004, 11:28
    #32799252
Kaktus_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Пытаюсь сделать операцию умножения - ничего не получается. Колонка "Вес в килограммах" пуста.

"dbo"."Факт"."Количество штук" * "dbo"."Факт"."Нормативный вес"

А когда делаю точно такую же операцию (для пробы) со знаком плюс или минус - мера расчитывается.

"dbo"."Факт"."Количество штук" + "dbo"."Факт"."Нормативный вес"

В чем может быть трабла?
...
Рейтинг: 0 / 0
25.11.2004, 11:44
    #32799265
Kaktus_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Даже поотдельности срабатывают операции
"dbo"."Факт"."Количество штук" * число
и
"dbo"."Факт"."Нормативный вес" * число

а "dbo"."Факт"."Количество штук" * "dbo"."Факт"."Нормативный вес"
не срабатывает

%-)
...
Рейтинг: 0 / 0
25.11.2004, 12:55
    #32799468
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
это вопросы к вашей СУБД (MS SQL судя по dbo)
попробуйте
Код: plaintext
1.
cast(IsNull("dbo"."Факт"."Количество штук", 0 ) as float) * cast(IsNull("dbo"."Факт"."Нормативный вес", 0 ) as float)
...
Рейтинг: 0 / 0
25.11.2004, 13:14
    #32799529
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
В этом случае в качестве фактов лучше использовать не table, а view и создать в нем еще одну поле, как произведение двух вышеупомянутых. Затем в AS его можно использовать как основу для обычной меры с функцией SUM. В этом случае Вы облегчите жизнь не только своим клиентам но и серверу, хотя объем хранимой информации естественно возрастет.
...
Рейтинг: 0 / 0
25.11.2004, 13:28
    #32799561
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
лучше использовать не table

в этом случае нет никакой разницы. а иногда вью создать просто невозможно.

объем хранимой информации естественно возрастет

возрастёт по сравнению с чём?
...
Рейтинг: 0 / 0
25.11.2004, 13:53
    #32799622
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Dmitry Biryukov
лучше использовать не table
в этом случае нет никакой разницы. а иногда вью создать просто невозможно.
1. разница есть - table может быть рабочая со всеми вытекающими последствиями
2. честно говоря, не припомню ни одного случая, когда нельзя создать view
3. из любой ситуации всегда можно найти выход, в частности создать другую table

Dmitry Biryukov
объем хранимой информации естественно возрастет
возрастёт по сравнению с чём?

Если использовать Calculated member, то хранится только его описание, которое вычисляется в момент запроса к AS, к тому же, вычисление происходит на стороне клиента (по-умолчанию, естественно все настраивается :)). А при использовании "штатной" меры - под нее отводится отдельное место на сервере, для каждого факта и агрегата, отсюда и увеличение в объемах.
...
Рейтинг: 0 / 0
25.11.2004, 14:13
    #32799672
Kaktus_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Спасибо за помощь, ошибку нашел. Просто немного перемудрил.
...
Рейтинг: 0 / 0
25.11.2004, 14:57
    #32799807
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
ShIgor1. разница есть - table может быть рабочая со всеми вытекающими последствиями
2. честно говоря, не припомню ни одного случая, когда нельзя создать view
3. из любой ситуации всегда можно найти выход, в частности создать другую table

1. view ссылается на ту же таблицу и могут быть точно такие же последствия
2. например прав нет. или субд такая, что view там в принципе нет
3. выход есть всегда, но вот ещё одна таблица - это один из худших, т.к. такую таблицу надо регулярно обновлять и она действительно занимает место.

ShIgor
Если использовать Calculated member, то хранится только его описание, которое вычисляется в момент запроса к AS, к тому же, вычисление происходит на стороне клиента (по-умолчанию, естественно все настраивается :)). А при использовании "штатной" меры - под нее отводится отдельное место на сервере, для каждого факта и агрегата, отсюда и увеличение в объемах.


Так-то оно так, но всегда ищется разумный компромис между объёмом хранимой информации и скоростью исполнения запросов.
Место для современных серверов - не проблема, а время аналитика или топ-менеджера стоит дорого и его не вернуть.

Я, например, в storage design wizarde, предпочитаю отдать 10-20 гиг "лишнего" места, но чтобы все запросы выполнялись быстрее, чем человек успеет подумать.
...
Рейтинг: 0 / 0
25.11.2004, 15:54
    #32800007
Kaktus_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Оказывается мои похождения не закончились.
Появилась проблема следующего характера:
У меня есть мера - "Нормативный вес" и есть Calculated Member - "Начальный остаток ШТ".

Как в этом случае посчитать "Вес в килограммах"? Хотелось бы тоже сделать мерой, чтобы итоги верно считались, но не знаю как. Подскажите плс.
...
Рейтинг: 0 / 0
25.11.2004, 16:08
    #32800056
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
а что мешает сделать CM "Начальный вес, КГ" ?
по аналогии c тем как считается "Начальный остаток ШТ", только за основу взять другую меру.
...
Рейтинг: 0 / 0
25.11.2004, 16:56
    #32800157
Kaktus_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Ага, получилось, но поднялась еще одна старая проблема.

Таблица фактов представляет собой следующую структуру

Код: plaintext
1.
2.
3.
"Приход" "Расход" "Возврат" "Ссылка_на_справочник_товаров" "Норм_вес"
     0           10          0                          234                                55
     5            0           0                           45                                22
     0            5           0                          234                               55
т.е. одна строка - одна операция по товару.
У меня есть измерение, которое показывает товар в ассортименте.
Получится, что для товара с сылкой 234 произойдет вычисление меры
"Вес в килограммах" для первой операции как 10 * 55 = 550
и к нему добавится вычисление меры "Вес в килограммах" для третьей операции 5 * 55 = 275
Итого по строке товара с сылкой 234 отобразится что
"Нормативный вес" = 55 + 55
"Вес в килограммах" = 275 + 550
Как выйти из этой ситуации? Как отобразить правильный (неудвоенный (для данного примера)) нормативный вес для каждого товара и правильный "Вес в килограммах"?
Код: plaintext
...
Рейтинг: 0 / 0
25.11.2004, 17:02
    #32800176
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Вес в килограммах считается правильно
нормативный вес - это свойство измерения товар. в меру его запихивать не надо.

похожее здесь
http://www.sql.ru/forum/actualthread.aspx?tid=138382&pg=-1
...
Рейтинг: 0 / 0
25.11.2004, 19:05
    #32800440
Kaktus_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Dmitry BiryukovВес в килограммах считается правильно
нормативный вес - это свойство измерения товар. в меру его запихивать не надо.

похожее здесь
http://www.sql.ru/forum/actualthread.aspx?tid=138382&pg=-1

Ага, спасибо, так и сделал.
...
Рейтинг: 0 / 0
26.11.2004, 09:04
    #32800744
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Dmitry Biryukov
1. view ссылается на ту же таблицу и могут быть точно такие же последствия
2. например прав нет. или субд такая, что view там в принципе нет
3. выход есть всегда, но вот ещё одна таблица - это один из худших, т.к. такую таблицу надо регулярно обновлять и она действительно занимает место.

Так-то оно так, но всегда ищется разумный компромис между объёмом хранимой информации и скоростью исполнения запросов.
Место для современных серверов - не проблема, а время аналитика или топ-менеджера стоит дорого и его не вернуть.

Я, например, в storage design wizarde, предпочитаю отдать 10-20 гиг "лишнего" места, но чтобы все запросы выполнялись быстрее, чем человек успеет подумать.
1. проблем как раз меньше:
во-первых таблицы, как учили, обычно в нормализованом виде, а OLAPу лучше денормализовать все. во-вторых, опять же как учили, не давайте пользователям (OLAP тоже пользователь) глядеть в таблицы напрямую.
в-третьих перечислять преимущества представления в данном случае можно долго...
2. прав нет - значит кривой админ, или кривая политика, или в конечном счете этому пользователю и OLAP не нужен..
а view нет - так вроде мы про MS SQL беседу ведем - не отвлекайтесь от темы..
3. А вот я так не считаю - сами же написали:
Dmitry BiryukovМесто для современных серверов - не проблема
и еженочно у меня такая опреация происходит. Из рабочей базы с помощью DTS идет выгрузка на другой сервер, в другую базу, с денормализацией, с дополнителными расчетами типа того, который стоит в вопросе этой темы.
И плохого я в этом не вижу ничего. Потому что:
Dmitry Biryukov...время аналитика или топ-менеджера стоит дорого и его не вернуть.
И предлагаю на этом тему закрыть... спорить можно бесконечно и придумать можно всякие оправдания в пользу одного и другого подхода. Человек с другим вопросом обратился а мы в дебри полезли... :)
если интересно можно просто пообщаться by mail, by icq
ok?
...
Рейтинг: 0 / 0
26.11.2004, 10:28
    #32800898
Владимир Штепа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Kaktus_Инструменты: MS AS и Excel 2000.

Подскажите, плс, как можно добиться чтобы итог по Calculated Member расчитывался как сумма по колонке, а не как произведение соответствующих итогов?

при определении Calculated Member вы можете задать SOLVE_ORDER и получите желаемый вами порядок вычислений.
...
Рейтинг: 0 / 0
26.11.2004, 10:52
    #32800953
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
backfireпри определении Calculated Member вы можете задать SOLVE_ORDER и получите желаемый вами порядок вычислений.
В этом случае так не получится. В СМ используются уже агрегированные значения. Здесь же надо надо наоборот: Calculate, then aggregate
хотя СМ может быть таким:
Код: plaintext
SUM(descendants(...),вес*количество)
но это медленно.
...
Рейтинг: 0 / 0
29.11.2004, 18:07
    #32804648
Kaktus_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
Dmitry BiryukovВес в килограммах считается правильно
нормативный вес - это свойство измерения товар. в меру его запихивать не надо.

похожее здесь
http://www.sql.ru/forum/actualthread.aspx?tid=138382&pg=-1

Вынужден вернуться к этому месту, т.к. возникла проблема.
Имеется два измерения (по Snowflake схеме):
Измерение1. Торговая марка, Товар
Измерение2. Клиент, Товарная Группа, Товар

Для первого измерения имеется Member Property для уровня Товар - Нормативный вес.

Для того, чтобы можно было отдельно отображать нормативный вес делаю CM, в котором пишу [Измерение1].Properties("Нормативный вес"). И все замечательно работает, пока я не пытаюсь просмотреть куб в разрезе Измерения2. В этом случае CM не расчитывается.
Объясните пожалуйста как выйти из этой ситуации. Товар будет встречаться во многих измерениях и во всех необходимо видеть нормативный вес.

PS Создать отдельное измерение товар не могу, т.к. клиент - Excel и конечный пользователь хочет чтобы информация по уровням разворачивалась/сворачивалась, а если я сделаю, например аналог Измерение1 как Измерение3(Торговая марка) и Измерение4(Товар) Excel вывалит мне на экран сразу все данные.
...
Рейтинг: 0 / 0
01.12.2004, 16:25
    #32807959
Dmitry Biryukov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итог по Calculated Member-ам
iif(измерение1.currentmember.level is измерение1.[(All)],....
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Итог по Calculated Member-ам / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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