powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Custom rollup formula
8 сообщений из 8, страница 1 из 1
Custom rollup formula
    #33579280
Barry_more
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
В MS SQL2000 Analysis server создан куб, в нем мера (culculated member), которая вычисляет среднее значение и два измерения. Надо чтобы итог по одному измерению продолжал вычисляться как среднее, а по другому считался бы как сумма. И чтобы итог по обоим измерениям считался бы как сумма средних (т.е. сначала итог по первому измерению, затем по второму). Если это можно сделать, задав Custom rollup formula для второго измерения, то какое MDX выражение указать?
Спасибо.
...
Рейтинг: 0 / 0
Custom rollup formula
    #33579654
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
SUM(Dim2.CurrentMember.Children, Measures.avg)
...
Рейтинг: 0 / 0
Custom rollup formula
    #33580377
Barry_more
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Biryukov
Код: plaintext
SUM(Dim2.CurrentMember.Children, Measures.avg)


avg здесь - это название меры? Если да, то итог по второму измерению не получился равным сумме. Т.е. если значения меры по второму измерению 2 и 1, то итог по нему оказался равным 1, а не 3.
...
Рейтинг: 0 / 0
Custom rollup formula
    #33581001
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Measures.avg - это calculated member, который вычисляет среднее значение.
Приведите текст воих CM, custom rollup, запросов, ожидаеиіх результатов и полученных.
...
Рейтинг: 0 / 0
Custom rollup formula
    #33581219
Barry_more
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CM AvgQuantity: [Measures].[Quantity]/[Measures].[cnt]
custom rollup для Dim2: Sum([Dim2].CurrentMember.Children,Measures.AvgQuantity)
В собранном кубе (просматривается в экселе) при некотором значении по Dim1 имеется два member по Dim2 и для них значения CM AvgQuantity равны 1 и 2. Ожидается, что итог по Dim2 будет равен 3. А он оказался = 1.

Однако требуемый куб удалось создать симметричным образом (переносом расчета среднего из Measures в custom rollup, а суммы в Measures). Т.е. я создал custom rollup для Dim1 с расчетом среднего: Avg([Dim1].CurrentMember.Children, [Measures].CurrentMember), а в агрегирующей функции для меры оставил обычную сумму ([Measures].[Quantity] сделал visible, а CM с расчетом среднего удалил вообще). И теперь итог по Dim2 стал равен 3. И в итогах по обоим измерениям тоже сумма.

В BOL по поводу Custom Rollup Formulas сказано: "A custom rollup formula applies to all the members (except calculated members) in a level." Может быть дело в этом?
...
Рейтинг: 0 / 0
Custom rollup formula
    #33581319
Barry_more
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Barry_more
В BOL по поводу Custom Rollup Formulas сказано: "A custom rollup formula applies to all the members (except calculated members) in a level." Может быть дело в этом?
И если дело в том, что нелзя custom rollup использовать с CM, то возникает вопрос: а нельзя ли как-нибудь получать в итогах среднее без применения CM? Уж больно хочется именно расчет среднего оставить в итогах по одной из мер. (Потому что на самом деле в кубе должна быть еще одна мера M2, и в итогах для M2 по обоим измерениям должна быть сумма. Т.е. в итогах для М1 по Dim1 должно быть среднее, по Dim2 должна быть сумма; в итогах для М2 по обоим измерениям должна быть сумма. Если бы удалось итоги для М1 находить как среднее, то задав custom rollup в виде суммы для Dim2, можно было бы создать нужный куб (итоги для М2 определилим как сумму)).
...
Рейтинг: 0 / 0
Custom rollup formula
    #33581499
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barry_moreВ собранном кубе (просматривается в экселе) при некотором значении по Dim1 имеется два member по Dim2 и для них значения CM AvgQuantity равны 1 и 2. Ожидается, что итог по Dim2 будет равен 3. А он оказался = 1.Custom rollup formula работает немного не так. если Dim имеет несколько уровней, то итог по родителю будет суммой детей. Но для того чтобы для каждого члена итог был суммой по членам другого измерения (как Вы описали) - это надо СМ или СС.

единицу вы увидели от того, что после применения Custom rollup formula Quantity стал равен cnt
Искомую вами сумму средних надо было посмотреть в какой-нибудь физической мере.


Barry_more
Однако требуемый куб удалось создать симметричным образом (переносом расчета среднего из Measures в custom rollup, а суммы в Measures). Т.е. я создал custom rollup для Dim1 с расчетом среднего: Avg([Dim1].CurrentMember.Children, [Measures].CurrentMember), а в агрегирующей функции для меры оставил обычную сумму ([Measures].[Quantity] сделал visible, а CM с расчетом среднего удалил вообще). И теперь итог по Dim2 стал равен 3. И в итогах по обоим измерениям тоже сумма.

если мера физическая, то вы получили среднюю сумму, а не сумму средних. (при определённых условиях они равны, и Вы могли не заметить)

Barry_more
В BOL по поводу Custom Rollup Formulas сказано: "A custom rollup formula applies to all the members (except calculated members) in a level." Может быть дело в этом? здесь имелись в виду СМ, у которых parent dimension != Meaures
...
Рейтинг: 0 / 0
Custom rollup formula
    #33581506
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barry_more Barry_more
В BOL по поводу Custom Rollup Formulas сказано: "A custom rollup formula applies to all the members (except calculated members) in a level." Может быть дело в этом?
И если дело в том, что нелзя custom rollup использовать с CM можно. только надо разобраться с Solve Order

Barry_more
то возникает вопрос: а нельзя ли как-нибудь получать в итогах среднее без применения CM? Уж больно хочется именно расчет среднего оставить в итогах по одной из мер. (Потому что на самом деле в кубе должна быть еще одна мера M2, и в итогах для M2 по обоим измерениям должна быть сумма. Т.е. в итогах для М1 по Dim1 должно быть среднее, по Dim2 должна быть сумма; в итогах для М2 по обоим измерениям должна быть сумма. Если бы удалось итоги для М1 находить как среднее, то задав custom rollup в виде суммы для Dim2, можно было бы создать нужный куб (итоги для М2 определилим как сумму)). напишите Rollup с IIF, зависящим от Measures.CurrentMember.
или Calculated cells. посмотрите что быстрее работать будет.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Custom rollup formula
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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