Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Нужна помощь с MDX запросом / 13 сообщений из 13, страница 1 из 1
22.05.2018, 09:22
    #39647894
Katrine_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
Добрый день, прошу помощи.
Данные в таблице фактов, на основе которой строится куб, хранятся в разрере: Менеджер-Адрес-Товар.
В кубе уже есть вычисляемая мера по расчету количества сработанных клиентов:
Код: sql
1.
iif([Measures].[Кол]>0,sum(descendants([Адрес].[Адрес].currentmember,,leaves),iif([Measures].[Кол]>0,1,0)),NULL)


Теперь необходимо создать меру, которая бы считала количество сработанных клиентов без привязки к товару.
Т.е. не важно, какой товар выбирается, количество клиентов должно в каждой строке выходить одно и то же.
...
Рейтинг: 0 / 0
22.05.2018, 16:02
    #39648187
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
Katrine_S,

Код: sql
1.
iif([Measures].[Кол]>0,sum(descendants([Адрес].[Адрес].currentmember,,leaves),iif((Root([Товар]), [Measures].[Кол])>0,1,0)),NULL)
...
Рейтинг: 0 / 0
28.05.2018, 15:41
    #39651147
Katrine_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
Спасибо, помогло.

Но теперь я столкнулась со следующей проблемой:
Куб, который я создаю имеет три независимых измерения на товар: Товар, Подгруппа и Группа. Связи между Товаром и Подгруппой и Подгруппой и Группой один ко многим (одному товару соответствует одна подгруппа, и каждой подгруппе одна группа).
Данная формула прекрасно работает в рамках измерения Товар, но не работает в рамках измерений Подгруппа и Группа.
А заказчик хочет, что бы независимо от любого из трех измерений считалось количество клиентов, сработавших в этом месяце.

Попробовала сделать в лоб:
Код: sql
1.
iif([Measures].[Кол]>0,sum(descendants([Адрес].[Адрес].currentmember,,leaves),iif((Root([Товар]), [Measures].[Кол])>0 or (Root([Подгруппа]), [Measures].[Кол])>0 or (Root([Группа]), [Measures].[Кол])>0,1,0)),NULL)



Данная формула прекрасно работает на одном из трех измерений, но если вывести в отчет два и более, уже показывает не ту цифру.

Ситуация еще усложняется тем, что в кубе две таблицы фактов. Первая имеет детализацию Менеджер-Адрес-Товар, а вторая Менеджер-Подгруппа. И соответственно измерения Товар там вообще не предполагается. Более того измерение Товар вообще нужно только для данной формулы и мне для тестирования. Пользователь в конечном кубе его вообще не увидит.

Огромная просьба о помощи. До этого все кубы, с которыми я работала, были более стандартной конфигурации.
...
Рейтинг: 0 / 0
28.05.2018, 15:43
    #39651148
Katrine_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
Небольшое пояснение по предыдущей картинке: в колонке Test в каждой строчке должно быть 20.
...
Рейтинг: 0 / 0
29.05.2018, 12:00
    #39651670
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
Katrine_S,

и зачем Вы их разделили если по Вашему же описанию они выстраиваются в иерархию Группа-Подгруппа-Товар?

а ответ простой
iif((Root([Группа]), Root([Подгруппа]), Root([Товар]), [Measures].[Кол])>0,1,0))
...
Рейтинг: 0 / 0
29.05.2018, 13:18
    #39651737
Katrine_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
ShIgor, ОГРОМНОЕ СПАСИБО. Все получилось.

Разделены они по двум причинам:
1) Товар пользователям не нужен совсем. Он нужен только для вычисления пары мер.
2) Группа и Подгруппа хотя и имеют классическую связь один ко многим, но по факту данная связь не постоянно и подгруппы могут перекидываться из одной группы в другую. В 1С это хранится в регистре сведений. А я уже через запрос собираю срез последних.
...
Рейтинг: 0 / 0
29.05.2018, 13:51
    #39651771
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
Katrine_S,

1. Скрыть от пользователя, формулы все-равно будут работать
2. Ну сделали срез последних, истории все-равно нет и товар однозначно попадает в свое место иерархии.

поэтому не вижу смысла для каждого факта писать отдельные поля (Гр, Пгр, Тов) и создавать отдельные измерения.

да и в случае с SCD тоже этого делать не надо.

единственное, что приходит в голову когда разделение может пригодиться, это когда структура в справочнике товаров одна, структура продаж (фактов) иная.
...
Рейтинг: 0 / 0
29.05.2018, 13:58
    #39651780
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
Katrine_SВ кубе уже есть вычисляемая мера по расчету количества сработанных клиентов:
Код: sql
1.
iif([Measures].[Кол]>0,sum(descendants([Адрес].[Адрес].currentmember,,leaves),iif([Measures].[Кол]>0,1,0)),NULL)



А Вы таки 100% уверены, что у разных клиентов адрес не повторяется.
Что два разных клиента не могут с течением времени иметь один и тот же адрес.

Вот есть квартира в доме. И в ней живет покупатель Вашей фирмы Иванов и покупатель Вашей фирмы Иванова, его жена/сестра/мама/тетя. И это разные покупки и количество клиентов равное 2, а не 1.

По-моему, Вы не очень хорошо продумали структуру своего OLAP куба. Впрочем, возможно, Вы такие варианты заранее продумали и согласовали с пользователями куба как несущественные погрешности...
...
Рейтинг: 0 / 0
29.05.2018, 15:19
    #39651841
ShIgor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
Andy_OLAP,

откуда Вы узнали что является ключом Адреса делая такие выводы?
...
Рейтинг: 0 / 0
29.05.2018, 15:52
    #39651880
Katrine_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
Andy_OLAP,

В данном конкретном случае измерение [Адрес].[Адрес] это измерение с свойством key - id из 1С и свойством name - наименованием оттуда же. Две точки, даже имеющие один адрес - это все равно заведомо две разные точки в базе, имеющие разные id. Соответственно считается все корректно.

Если же структура БД заказчика позволяет к разным клиентам привязывать одну и ту же точку, то в таких случаях будет считаться как одна точка, т.к id один и тот же. Что будет соответствовать структуре БД.
...
Рейтинг: 0 / 0
29.05.2018, 18:23
    #39651992
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
Katrine_SЕсли же структура БД заказчика позволяет к разным клиентам привязывать одну и ту же точку , то в таких случаях будет считаться как одна точка, т.к id один и тот же. Что будет соответствовать структуре БД.
Может быть, тогда назвать не "вычисляемая мера по расчету количества сработанных клиентов", а "вычисляемая мера по расчету количества уникальных адресов для сработанных клиентов"? И явно в документации обозначить, чтобы пользователи куба потом остатки волос на голове не рвали в припадке гнева?
...
Рейтинг: 0 / 0
29.05.2018, 18:24
    #39651993
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
ShIgorAndy_OLAP,

откуда Вы узнали что является ключом Адреса делая такие выводы?
Откуда Вы узнали, что я что-либо узнал? Я не узнавал, а сделал предположение, что считается формулой одно, а называется другим. И потом будет непонимание и скандал таки на ровном месте.
...
Рейтинг: 0 / 0
30.05.2018, 08:14
    #39652188
Katrine_S
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с MDX запросом
ShIgor,

В основном я их разделила, потому что в таком случае нужно все таблицы фактов цеплять через ТоварИД, а в одной из таблиц фактов этого поля просто нет. И чтобы ничего не усложнять в исходных данных, сделала их отдельно.
Возможно просто не хватило опыта и это можно было сделать более оптимально. Но когда заказчику нужно срочно иногда времени на подумать просто нет, нужно брать лопату и начинать копать. И не важно, что в метре почва более мягкая.
+ нельзя исключать ситуации, когда через год заказчик вдруг захочет видеть историю изменений в связке Группа-Подгруппа и тогда, в случае единого измерения, это будет сделать намного сложнее.

Andy_OLAP,

В данном случае есть вполне конкретный термин: Активная Клиентская База. И этот термин исходит именно от заказчика. Так что путаницы точно не будет.
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Нужна помощь с MDX запросом / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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