powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Фильтр при использовании mdx
13 сообщений из 13, страница 1 из 1
Фильтр при использовании mdx
    #39539593
Гость99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, такой вопрос, есть куб, в нем отбираются продажи товаров по заданному свойству (тип товара), мне нужно увидеть товары, у которых было 0 продаж за заданный период времени , я добавляю :

CREATE MEMBER CURRENTCUBE.[Measures].[Количество]
AS iif( [Measures].[ПроданоКоличество] = null, 0, [Measures].[ПроданоКоличество] ),

он выдает мне все товары, забивая на мои фильтры в кубе и измерения..

Какое можно добавить условие, чтобы он показывал товары только те, которые я выбрал через фильтр (как например Тип товара)?
Подскажите пожалуйста.. Что-то не могу сообразить :(
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539646
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость99,

а фильтр-то где?
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539726
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость99,

а если так: CREATE MEMBER CURRENTCUBE.[Measures].[Количество]
AS iif( [Measures].[ПроданоКоличество] = null, 0, null )
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539753
Гость99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShIgor,

Ну допустим, как то так: Есть куб, смотрю в нем продажи за последнюю неделю по товару яблоко, который удовлетворяет фильтру измерения: "Участвуют в акции",
выбираю все магазины, он показывает мне:
4 магазина - в каждом по несколько продаж за заданный период.

а у меня всего 6 магазинов и мне нужно, чтобы в других магазинах по этому товару, удовлетворяющему нужной акции он показал 0.
т.е. было так:

магазин 1 продано яблок 2
магазин 2 продано яблок 3
магазин 3 продано яблок 5
магазин 4 продано яблок 6
магазин 5 продано яблок 0
магазин 6 продано яблок 0

а он, при моем запросе показывает мне не яблоки, которые по акции, а вообще весь ассортимент..
Вот и вопрос, как сделать так, чтобы он показывал мне то что я выше написал, а не все товары :)
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539755
Гость99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bideveloper,
выдало просто нули везде :(
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539760
Гость99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. вопрос в том, как заставить mdx показывать не все товары, а только те, которые входят в Тип товаров, выбранный мной, за указанные периоды, во всех магазинах..
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539762
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость99,
Код: sql
1.
isempty()
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539769
Гость99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушка,

можете написать, как запрос будет выглядеть? попытался накинуть на [Количество], выдает опять не то.. Не верно понимаю?
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539773
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость99т.е. вопрос в том, как заставить mdx показывать не все товары, а только те, которые входят в Тип товаров, выбранный мной, за указанные периоды, во всех магазинах ..

Выбираете несколько SKU фильтром по измерению и считаете.
create hidden dynamic set [Только_выбранные_товары] as existing [Номенклатура].[SKU].[SKU] - где "SKU" есть название ключевого атрибута измерения.
Далее у Вас есть 2 меры.
CREATE MEMBER CURRENTCUBE.[Measures].[Кол-во проданных товаров в магазине] as
iif(
sum(existing [Только_выбранные_товары],iif([Measures].[Продажи руб]<>0,1,null))=0,null,
sum(existing [Только_выбранные_товары],iif([Measures].[Продажи руб]<>0,1,null))
),
FORMAT_STRING = "#,#",
VISIBLE = 1;
CREATE MEMBER CURRENTCUBE.[Measures].[Кол-во проданных товаров во всех выбранных магазинах] as
iif(

sum(existing [Только_выбранные_товары],iif(([Магазины].[Магазин].[(All)],Measures].[Продажи руб])<>0,1,null))=0,null,
sum(existing [Только_выбранные_товары],iif(([Магазины].[Магазин].[(All)],Measures].[Продажи руб])<>0,1,null))
),
FORMAT_STRING = "#,#",
VISIBLE = 1;
И получается, что в измерении номенклатуры 100 тысяч позиций, при выборе атрибута "тип товара" = "яблоки" остается виртуальных 150 SKU.
[Measures].[Кол-во проданных товаров в магазине] - где-то 5, где-то 6, где-то пустота (не было оборотов), где-то 4.
[Measures].[Кол-во проданных товаров во всех выбранных магазинах] - для любого магазина (только не ставьте фильтр на это измерение) - это 5+6+4 = 15 SKU.

А теперь выводите
CREATE MEMBER CURRENTCUBE.[Measures].[Кол-во проданных товаров за период] as
iif(
[Measures].[Кол-во проданных товаров во всех выбранных магазинах] = 0, null,
// вот этого конкретного яблока среди 150 возможных вариантов ни в одном из магазинов не было
// поэтому для него пустая строка в отчете
// если в отчете под магазинами в строки вытянут SKU из измерения номенклатуры
iif
(
[Measures].[Кол-во проданных товаров в магазине] =0, 0, [Measures].[Кол-во проданных товаров в магазине]
// если во всей сети не 0, а в выбранном пустота - тогда ставим железный 0, а не прячем строку в отчете
)
),
FORMAT_STRING = "#,#",
VISIBLE = 1;


Ну а сумму оборота в штуках и рублях еще проще, чем количество уникальных SKU считать. Мысль уловили?
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539823
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость99,

Делаете отдельную группу мер, где используете таблицу измерения Товары как таблицу фактов. Там делаете меру "Количество товаров", на основе вычисляемого поля, которое всегда равно 0.
Эту группу мер привязываете к магазинам/акциям через связь многие ко многим. Таким образом уже сможете вывести список всех товаров, которые участвуют в акции в определенных магазинах независимо от количества продаж.
Далее делаете меру "Количество" = "ПроданоКоличество" + "Количество товаров" и получите нужный результат.
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539844
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bideveloperГость99,

Делаете отдельную группу мер, где используете таблицу измерения Товары как таблицу фактов. Там делаете меру "Количество товаров", на основе вычисляемого поля, которое всегда равно 0.
Эту группу мер привязываете к магазинам/акциям через связь многие ко многим.
Не, немного не так.
Делаете таблицу/запрос вида магазин, акция, дата действия акции, товар. К ней привязываете измерения обычным образом. Далее как в предыдущем сообщении.
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539919
Гость99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bideveloper,

Идея очень даже мне нравится, вопрос только, а как обойти следующее: дата акции идет с такого то числа по такое то, потому, как с этим быть?

а вообще, все сработало, когда я сделал вычисляемое измерение в обычную структуру фактов, но сработало в классификаторе до товара.., на товаре он ставит пусто.. Пробовал сделать в вычисляемом измерении isnull (0,0) - ноль реакции..


По остальным вариантам, смогу только в пн попробовать, спасибо большое, если есть еще идеи, буду рад :)
...
Рейтинг: 0 / 0
Фильтр при использовании mdx
    #39539948
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость99bideveloper,

Идея очень даже мне нравится, вопрос только, а как обойти следующее: дата акции идет с такого то числа по такое то, потому, как с этим быть?

развернуть строчку с периодом на несколько строчек с датой на каждый день
т. е. было акция 1 с 03.10.2017 по 07.10.2017
а будет
акция 1 03.10.2017
акция 1 04.10.2017
...
акция 1 07.10.2017

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


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