|
|
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
Подскажите, такой вопрос, есть куб, в нем отбираются продажи товаров по заданному свойству (тип товара), мне нужно увидеть товары, у которых было 0 продаж за заданный период времени , я добавляю : CREATE MEMBER CURRENTCUBE.[Measures].[Количество] AS iif( [Measures].[ПроданоКоличество] = null, 0, [Measures].[ПроданоКоличество] ), он выдает мне все товары, забивая на мои фильтры в кубе и измерения.. Какое можно добавить условие, чтобы он показывал товары только те, которые я выбрал через фильтр (как например Тип товара)? Подскажите пожалуйста.. Что-то не могу сообразить :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 14:59 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
Гость99, а фильтр-то где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 16:17 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
Гость99, а если так: CREATE MEMBER CURRENTCUBE.[Measures].[Количество] AS iif( [Measures].[ПроданоКоличество] = null, 0, null ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 18:29 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
ShIgor, Ну допустим, как то так: Есть куб, смотрю в нем продажи за последнюю неделю по товару яблоко, который удовлетворяет фильтру измерения: "Участвуют в акции", выбираю все магазины, он показывает мне: 4 магазина - в каждом по несколько продаж за заданный период. а у меня всего 6 магазинов и мне нужно, чтобы в других магазинах по этому товару, удовлетворяющему нужной акции он показал 0. т.е. было так: магазин 1 продано яблок 2 магазин 2 продано яблок 3 магазин 3 продано яблок 5 магазин 4 продано яблок 6 магазин 5 продано яблок 0 магазин 6 продано яблок 0 а он, при моем запросе показывает мне не яблоки, которые по акции, а вообще весь ассортимент.. Вот и вопрос, как сделать так, чтобы он показывал мне то что я выше написал, а не все товары :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 20:33 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
bideveloper, выдало просто нули везде :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 20:44 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
т.е. вопрос в том, как заставить mdx показывать не все товары, а только те, которые входят в Тип товаров, выбранный мной, за указанные периоды, во всех магазинах.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 21:06 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
Гость99, Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 21:09 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
Дедушка, можете написать, как запрос будет выглядеть? попытался накинуть на [Количество], выдает опять не то.. Не верно понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 21:33 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
Гость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 считать. Мысль уловили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2017, 21:56 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
Гость99, Делаете отдельную группу мер, где используете таблицу измерения Товары как таблицу фактов. Там делаете меру "Количество товаров", на основе вычисляемого поля, которое всегда равно 0. Эту группу мер привязываете к магазинам/акциям через связь многие ко многим. Таким образом уже сможете вывести список всех товаров, которые участвуют в акции в определенных магазинах независимо от количества продаж. Далее делаете меру "Количество" = "ПроданоКоличество" + "Количество товаров" и получите нужный результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2017, 05:36 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
bideveloperГость99, Делаете отдельную группу мер, где используете таблицу измерения Товары как таблицу фактов. Там делаете меру "Количество товаров", на основе вычисляемого поля, которое всегда равно 0. Эту группу мер привязываете к магазинам/акциям через связь многие ко многим. Не, немного не так. Делаете таблицу/запрос вида магазин, акция, дата действия акции, товар. К ней привязываете измерения обычным образом. Далее как в предыдущем сообщении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2017, 10:45 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
bideveloper, Идея очень даже мне нравится, вопрос только, а как обойти следующее: дата акции идет с такого то числа по такое то, потому, как с этим быть? а вообще, все сработало, когда я сделал вычисляемое измерение в обычную структуру фактов, но сработало в классификаторе до товара.., на товаре он ставит пусто.. Пробовал сделать в вычисляемом измерении isnull (0,0) - ноль реакции.. По остальным вариантам, смогу только в пн попробовать, спасибо большое, если есть еще идеи, буду рад :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2017, 18:27 |
|
||
|
Фильтр при использовании mdx
|
|||
|---|---|---|---|
|
#18+
Гость99bideveloper, Идея очень даже мне нравится, вопрос только, а как обойти следующее: дата акции идет с такого то числа по такое то, потому, как с этим быть? развернуть строчку с периодом на несколько строчек с датой на каждый день т. е. было акция 1 с 03.10.2017 по 07.10.2017 а будет акция 1 03.10.2017 акция 1 04.10.2017 ... акция 1 07.10.2017 это можно сделать, например, путем джойна с таблицей дат по условию дата с <= дата <= дата по ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2017, 20:23 |
|
||
|
|

start [/forum/topic.php?fid=49&fpage=27&tid=1858065]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 408ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...