powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Среднее сальдо за период
8 сообщений из 8, страница 1 из 1
Среднее сальдо за период
    #32663725
ura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Измерения - Дата, Контрагент
Меры - Оборот по дебету([Measures].[Товары]), Оборот по кредиту ([Measures].[Платежи])

Сделал такие CM -
Сальдо на начало периода:
Код: plaintext
1.
SUM(LastPeriods( 1000000 ),([Measures].[Товары]-[Measures].[Платежи])) 
- SUM(LastPeriods( 1 ),([Measures].[Товары]-[Measures].[Платежи]))
Сальдо на конец периода:
Код: plaintext
SUM(LastPeriods( 100000 ),([Measures].[Товары]-[Measures].[Платежи]))
Вроде работает и даже быстро.
Но теперь нужно получить среднее сальдо за период . Делаю так
Код: plaintext
Avg([Дата].CurrentMember.Children,[Measures].[КонСальдо])
По одному контрагенту работает секунд 20, по всем результата вообще не дождался.
Подскажите какие нибудь варианты, если не сложно
PS Объем данных у меня вообще смешной пока - 120 тыс. записей в табл. фактов, контрагентов около тысячи
Подозреваю, что сейчас начнут советовать перейти к хранению остатков на каждый день - может в этом и есть смысл, но для начала хотелось бы без этого обойтись
...
Рейтинг: 0 / 0
Среднее сальдо за период
    #32664382
Road Runner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не очень разбираюсь в бухгалтерии, но интересно - что означают цифры в параметре функции LastPeriods - возвратить сет из 1000000 членов текущего уровня измерения времени ? Чем обусловлен выбор этой цифры? И если Вам не трудно - опишите человеческим языком - что такое у Вас сальдо на начало периода и что такое - на конец. И что вы хотите получить.
...
Рейтинг: 0 / 0
Среднее сальдо за период
    #32664711
ura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Road Runnerчто означают цифры в параметре функции LastPeriods - возвратить сет из 1000000 членов текущего уровня измерения времени ? Чем обусловлен выбор этой цифры?
Эта цифра взята от фонаря, лиш бы была достаточто большой.
Начальное сальдо - это сумма всех оборотов от начала времен до предыдущего периода.
Конечное сальдо - соответственно сумма оборотов от начала времен до [Дата].CurrentMember. LastPeriods(1000000) в даном примере можно заменить на [Дата].FirstChild:[Дата].CurrentMember, это принципиальной роли не играет.

А получить я хочу среднее сальдо за период, т.е. если текущий период у нас Месяц то суммируем сальдо на каждый день месяца и делим на количество дней в месяце.

Эта задача относится к анализу дебиторской задолженности.
И я уже пришел к выводу, что необходимо хранить остатки на каждый день, т.к. иначе просроченный долг не посчитать. Переформулирую задачу:

Измерения: Дата, Контрагент (для начала)
Меры: Сальдо, Долг

Причем хранится только факт изменения задолженности, данных за каждый день нет.

Нужно найти:
Сальдо на конец текущего периода, сальдо на начало текущего периода, среднее сальдо за период.
...
Рейтинг: 0 / 0
Среднее сальдо за период
    #32665021
ura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как объявить Calculated Member, чтобы по всем измерениям, кроме времени, данные суммировались, а по времени брался бы последний член ?
...
Рейтинг: 0 / 0
Среднее сальдо за период
    #32665623
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uraКак объявить Calculated Member, чтобы по всем измерениям, кроме времени, данные суммировались, а по времени брался бы последний член ?

Для несимметричной аггрегации нужен не CalculatedMember, a CustomRollUp.
Т.е. на каждом уровне измерения времени надо будет написать MDX-формулу, которая будет заменять default поведение.
Есть примеры на эту тему в
SQL Server Accelerator for BI
...
Рейтинг: 0 / 0
Среднее сальдо за период
    #32665635
DmitryS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, если есть желание, то можно и в СМ прописывать проверки на уровни.
...
Рейтинг: 0 / 0
Среднее сальдо за период
    #32665721
ura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 backfire
разбираюсь с CustomRollUp... но как я понял, CustomRollUp формула применяется ко всем мерам, а мне нужно только к определенным... Если не сложно - можно пример... ?

2 DmitryS
Опять же, пример привести можно ?
...
Рейтинг: 0 / 0
Среднее сальдо за период
    #32665734
ura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 backfire
Сделал так
Код: plaintext
1.
2.
3.
Iif([Measures].CurrentMember is [Measures].[Saldo]
,[Период].CurrentMember.LastChild
,Aggregate([Период].CurrentMember.Children, [Measures].CurrentMember) 
)
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Среднее сальдо за период
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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