Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / OLAP и DWH Новый топик    Ответить
 Нужна помощь с MDX запросом  [new]
Katrine_S
Member

Откуда:
Сообщений: 9
Добрый день, прошу помощи.
Данные в таблице фактов, на основе которой строится куб, хранятся в разрере: Менеджер-Адрес-Товар.
В кубе уже есть вычисляемая мера по расчету количества сработанных клиентов:
iif([Measures].[Кол]>0,sum(descendants([Адрес].[Адрес].currentmember,,leaves),iif([Measures].[Кол]>0,1,0)),NULL)

Теперь необходимо создать меру, которая бы считала количество сработанных клиентов без привязки к товару.
Т.е. не важно, какой товар выбирается, количество клиентов должно в каждой строке выходить одно и то же.
22 май 18, 09:22    [21427728]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2032
Katrine_S,

iif([Measures].[Кол]>0,sum(descendants([Адрес].[Адрес].currentmember,,leaves),iif((Root([Товар]), [Measures].[Кол])>0,1,0)),NULL)
22 май 18, 16:02    [21429463]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
Katrine_S
Member

Откуда:
Сообщений: 9
Спасибо, помогло.

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

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


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

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

Огромная просьба о помощи. До этого все кубы, с которыми я работала, были более стандартной конфигурации.

К сообщению приложен файл. Размер - 5Kb
28 май 18, 15:41    [21447246]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
Katrine_S
Member

Откуда:
Сообщений: 9
Небольшое пояснение по предыдущей картинке: в колонке Test в каждой строчке должно быть 20.
28 май 18, 15:43    [21447257]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2032
Katrine_S,

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

а ответ простой
iif((Root([Группа]), Root([Подгруппа]), Root([Товар]), [Measures].[Кол])>0,1,0))
29 май 18, 12:00    [21449610]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
Katrine_S
Member

Откуда:
Сообщений: 9
ShIgor, ОГРОМНОЕ СПАСИБО. Все получилось.

Разделены они по двум причинам:
1) Товар пользователям не нужен совсем. Он нужен только для вычисления пары мер.
2) Группа и Подгруппа хотя и имеют классическую связь один ко многим, но по факту данная связь не постоянно и подгруппы могут перекидываться из одной группы в другую. В 1С это хранится в регистре сведений. А я уже через запрос собираю срез последних.
29 май 18, 13:18    [21449979]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2032
Katrine_S,

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

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

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

единственное, что приходит в голову когда разделение может пригодиться, это когда структура в справочнике товаров одна, структура продаж (фактов) иная.
29 май 18, 13:51    [21450152]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 2166
Katrine_S
В кубе уже есть вычисляемая мера по расчету количества сработанных клиентов:
iif([Measures].[Кол]>0,sum(descendants([[b]Адрес].[Адрес[/b]].currentmember,,leaves),iif([Measures].[Кол]>0,1,0)),NULL)


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

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

По-моему, Вы не очень хорошо продумали структуру своего OLAP куба. Впрочем, возможно, Вы такие варианты заранее продумали и согласовали с пользователями куба как несущественные погрешности...
29 май 18, 13:58    [21450192]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2032
Andy_OLAP,

откуда Вы узнали что является ключом Адреса делая такие выводы?
29 май 18, 15:19    [21450618]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
Katrine_S
Member

Откуда:
Сообщений: 9
Andy_OLAP,

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

Если же структура БД заказчика позволяет к разным клиентам привязывать одну и ту же точку, то в таких случаях будет считаться как одна точка, т.к id один и тот же. Что будет соответствовать структуре БД.
29 май 18, 15:52    [21450791]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 2166
Katrine_S
Если же структура БД заказчика позволяет к разным клиентам привязывать одну и ту же точку, то в таких случаях будет считаться как одна точка, т.к id один и тот же. Что будет соответствовать структуре БД.

Может быть, тогда назвать не "вычисляемая мера по расчету количества сработанных клиентов", а "вычисляемая мера по расчету количества уникальных адресов для сработанных клиентов"? И явно в документации обозначить, чтобы пользователи куба потом остатки волос на голове не рвали в припадке гнева?
29 май 18, 18:23    [21451472]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
Andy_OLAP
Member

Откуда: я знаю, что Зенит - чемпион
Сообщений: 2166
ShIgor
Andy_OLAP,

откуда Вы узнали что является ключом Адреса делая такие выводы?

Откуда Вы узнали, что я что-либо узнал? Я не узнавал, а сделал предположение, что считается формулой одно, а называется другим. И потом будет непонимание и скандал таки на ровном месте.
29 май 18, 18:24    [21451476]     Ответить | Цитировать Сообщить модератору
 Re: Нужна помощь с MDX запросом  [new]
Katrine_S
Member

Откуда:
Сообщений: 9
ShIgor,

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

Andy_OLAP,

В данном случае есть вполне конкретный термин: Активная Клиентская База. И этот термин исходит именно от заказчика. Так что путаницы точно не будет.
30 май 18, 08:14    [21452391]     Ответить | Цитировать Сообщить модератору
Все форумы / OLAP и DWH Ответить