powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX (MS SSAS)
11 сообщений из 11, страница 1 из 1
MDX (MS SSAS)
    #39358126
v1em
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Требуется помощь в запросе MDX для корректного расчета Меры "Активная клиентская база".
Для справки - "Активная клиентская база - это все постоянные клиенты компании, закупившие товар более одного раза и продолжающие закупать его с определенной периодичностью."

Измерения DWH:
DimDepartment (ID, Name) (филиал)
DimTradeAgent (ID, Name) (торговый представитель)
DimTradePoint (ID, Name) (торговая точка)

Измерения не зависят друг от друга.

Мера DWH:
FactACB (ID, DepartmentID, TradeAgentID, TradePointID, ACBValue)(Активная клиентская база)
Значения в мере всегда имеют булево значение 1 или 0.

Суть проблемы:
Построен OLAP (SSAS) с перечисленными выше измерениями и данной мерой. На данный момент OLAP агрегирует все значения по всем граням. OLAP используется в разрезе Department/TradeAgent/TradePoint примениельно к данной мере. На данный момент если "Торговая точка" находится (за определенный срез времени, например "на дату") у двух "Торговых представителей" то у обоих значение АКБ агрегируется корректно, но оно не должно агрегироваться на уровне выше, т.е. Филиале. В расчете для "Филиала" требуется расчет "уникальных значений по всем сущностям ниже", т.е. в примере неправильное значение по "Филиалу 1" = 8, а должно быть = 7, т.к. "Торговая точка 1" встречается у двух "Торговых представителей", но должна учитываться уникально для "Департаментов" и для "Общего итога".

Надеюсь достаточно подробно описал.
Приложил пример (структуру сводной таблицы в Excel) с текущим состоянием и требуемым.

Прошу помощи в корректном составлении MDX запроса (хотя возможно есть какое либо свойство в SSAS/VS по которому можно отсекать такие задвоения на разных уровнях выстраивания измерений).

http://radikal.ru][img] http://s018.radikal.ru/i507/1612/32/f0061265db6a.jpg [/img]
...
Рейтинг: 0 / 0
MDX (MS SSAS)
    #39358455
vborets
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v1em,
Используйте DISTINCTCOUNT для подсчета точек в разрезе департаментов
...
Рейтинг: 0 / 0
MDX (MS SSAS)
    #39359074
v1em
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vboretsv1em,
Используйте DISTINCTCOUNT для подсчета точек в разрезе департаментов

Добрый день.

Попробовал создать меру с AggregateFunction и свойством DistinctCount.
Итоги стали также все 1 (единицей), что то можно дальше сделать чтобы итоги между измерениями считались с учетом уникальных и корректно складывались?
...
Рейтинг: 0 / 0
MDX (MS SSAS)
    #39359101
Leiten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему филиал и ТТ сделаны независимыми измерениями? Думаю, тут было бы лучше одно измерение с иерархией "Филиал - ТТ".
...
Рейтинг: 0 / 0
MDX (MS SSAS)
    #39359133
v1em
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeitenА почему филиал и ТТ сделаны независимыми измерениями? Думаю, тут было бы лучше одно измерение с иерархией "Филиал - ТТ".

Точек достаточно много (десятки тысяч), если было бы меньше то подумал бы с помощью MDS предопределить связь, но из источника данных нельзя однозначно получить привязку точки к определенному филиалу и они постоянно меняются. Также некоторые филиалы могут отгрузить в одну и ту же точку (филиалы не привязаны жестко к территории в обычном понимании, например в одном может быть одно количество наименований продуктов, а в другом будет чуть расширеннее (например склад позволяет хранить скоропортящиеся продукты) и по факту получается что два филиала могут отгрузить в одну точку, но разные продукты.
...
Рейтинг: 0 / 0
MDX (MS SSAS)
    #39359239
Leiten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
v1em,
Расскажите поподробнее как вы реализовали совет по поводу DistinctCount.
...
Рейтинг: 0 / 0
MDX (MS SSAS)
    #39359796
v1em
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leiten,

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
        <Measure dwd:design-time-name="***">
          <ID>ACB Value</ID>
          <Name>ACB Value</Name>
          <AggregateFunction>DistinctCount</AggregateFunction>
          <Source dwd:design-time-name="***">
            <DataType>Double</DataType>
            <Source xsi:type="ColumnBinding" dwd:design-time-name="***">
              <TableID>dbo_FactACB</TableID>
              <ColumnID>ACBValue</ColumnID>
            </Source>
          </Source>
        </Measure>
...
Рейтинг: 0 / 0
MDX (MS SSAS)
    #39360218
Leiten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
v1em,
В качестве источника для DC меры попробуйте указать идентификатор филиала.
...
Рейтинг: 0 / 0
MDX (MS SSAS)
    #39360219
Leiten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибся: не филиала, а ТТ.
...
Рейтинг: 0 / 0
MDX (MS SSAS)
    #39360952
v1em
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeitenОшибся: не филиала, а ТТ.
Простите а зачем? :)
В источнике как раз источник данных, т.е. колонка со значениями АКБ, ID ТТ это ключ ТТ (его некорректно складывать, да и для чего).
...
Рейтинг: 0 / 0
MDX (MS SSAS)
    #39361023
Leiten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так я ж и говорю для DistinctCount меры. Это будет не сложение значений идентификаторов, а подсчёт количества уникальных идентификаторов ТТ.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / MDX (MS SSAS)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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