powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Средний остаток за произвольный период SSAS MDX
5 сообщений из 5, страница 1 из 1
Средний остаток за произвольный период SSAS MDX
    #39462309
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
У меня в кубе есть такая формула для расчета среднего остатка по месяцам:
Код: sql
1.
2.
sum(DESCENDANTS([Date].[Год - Квартал -Месяц - Дата].CURRENTMEMBER, [Date].[Год - Квартал -Месяц - Дата].[Месяц]), 
([Measures].[Остаток нач] + [Measures].[Остаток кон])/2)/ count(DESCENDANTS([Date].[Год - Квартал -Месяц - Дата].CURRENTMEMBER, [Date].[Год - Квартал -Месяц - Дата].[Месяц]))



Она отлично работает, если допустим, выбираем год, или квартал, или отдельный месяц.
Но если выбрать, например, только 2 месяца из квартала (февраль 2017 и март 2017), то показывает неверный результат.
А пользователи очень хотят выбирать произвольный период из месяцев.
Как можно доработать формулу?
...
Рейтинг: 0 / 0
Средний остаток за произвольный период SSAS MDX
    #39462494
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bideveloper,

пример, надеюсь, наведет на мысль:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
with 
set [s_months] as descendants([Date].[Calendar].[All Periods], [Date].[Calendar].[Month])
member [c_months] as (existing [s_months]).count

select 
  [c_months] on columns,
  [Date].[Calendar Quarter].[Calendar Quarter] on rows
from
  (
    select 
	  {[Date].[Calendar].[Month].&[2006]&[5]:[Date].[Calendar].[Month].&[2007]&[1]} on columns 
	from [Adventure Works]
  )



если бы в AW была бы иерархия Months было бы проще и читалось бы легче, а так.. что есть.
...
Рейтинг: 0 / 0
Средний остаток за произвольный период SSAS MDX
    #39462501
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, во, с датами...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
with 
set [s_months] as descendants([Date].[Calendar].[All Periods], [Date].[Calendar].[Month])
set [s_days] as [Date].[Date].[Date]
member [c_months] as (existing [s_months]).count
member [c_days] as (existing [s_days]).count

select 
  {[c_months], [c_days]} on columns,
  [Date].[Calendar Quarter].[Calendar Quarter] on rows
from
  (
    select 
	  {[Date].[Calendar].[Date].&[20060520]:[Date].[Calendar].[Date].&[20070110]} on columns 
	from [Adventure Works]
  )
...
Рейтинг: 0 / 0
Средний остаток за произвольный период SSAS MDX
    #39462581
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) сделать фиктивную null-меру c sum-агрегацией над остатком
2) сделать меру количества дней
3) сделать CM, где одно поделить на другое
...
Рейтинг: 0 / 0
Средний остаток за произвольный период SSAS MDX
    #39462756
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Средний остаток за произвольный период SSAS MDX
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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