Опытный с SQL, но плохо знакомый с MDX, у меня возникают проблемы с умом:
У меня есть таблица фактов, которая содержит снимки сальдо счетов в месяц. Мне нужно свернуть балансы как полуаддитивную меру - прямая сумма, очевидно, не работает для балансов. Однако мне НЕОБХОДИМО суммировать все остатки за КАЖДЫЙ месяц отдельно, суммируя остатки по всем счетам, поэтому понятие «lastnonempty» для меня тоже не работает. Пример, если факты выглядят так:
Date AccountNo Balance
2009-01-31 1111 $100
2009-01-31 2222 $100
2009-01-31 4444 $100
2009-01-31 5555 $100
2009-02-28 1111 $100
2009-02-28 2222 $200
2009-02-28 3333 $500
2009-02-28 5555 $50
etc.
И у меня есть измерение учетных записей, которое группирует счета в основную категорию / вспомогательную категорию / иерархию учетных записей, мне нужен вывод, подобный этому, который суммирует остатки за каждый месяц по всем учетным записям:
Month Total
January 09 $400
February 09 $850
А по типу счета:
Month Total
January 09 $400
Type 1 $200
1111 $100
2222 $100
Type 2 $200
February 09 $850
Type 1 $300
Type 2 $550
НО, остатки НЕ должны суммироваться по месяцам, кварталам или годам, потому что это не имеет смысла, и они будут учитываться дважды. Любой более длительный интервал времени должен показывать закрытие периода:
Quarter WRONG Correct
Q1 $1250 $850 // should be the sum of balances for the *last* month in Q1
Type 1 $500 $300
Type 2 $759 $550
Если я использую агрегацию "lastnonempty", я получаю только одну, буквальную последнюю строку счета за месяц, а не сумму остатков на счетах за последний месяц. Это похоже на то, что итоговое значение за месяц показывает только баланс, взятый с одного случайного аккаунта в этом месяце, а не итоговое значение. (Я уверен, что это не совсем случайно, вероятно, выбирает один на основе порядка хранения или что-то)
Я уверен, что просто делаю что-то простое, не так ...