Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: Евгений от 22 марта 2016, 04:11:47

Название: Выборка по принципу "И", Qlikview
Отправлено: Евгений от 22 марта 2016, 04:11:47
Здравствуйте! Такой вопрос беспокоит:

Имеются такие данные:
Client, Product, Date, Sales
1,       Apple,  01-01-2015, 750
1,       Mango,  01-02-2015, 450
1,       Limon,  01-02-2015, 350
2,       Apple,  01-01-2015, 1750
2,       Mango,  01-02-2015, 550
3,       Limon,  01-01-2015, 250

(Выбираю Limon) Выражением sum( {<Client = p({1<Product={'Limon'}>}) >} Sales) я оставляю тех, кто покупал Limon. Это 1-ый и 3-ий клиент.

Вопрос:  Как мне оставить тех, кто покупал только Limon и ничего кроме.  Или, например, только тех, кто покупал  Limon и Mango вместе ( среди покупок именно два товара вместе)?

P.S.: может есть другие варианты сделать так, чтобы выборка в списке "Product" работала не как"Или", а как "И" ? Возможно как-то переключать эти режимы?
Название: Re: Выборка по принципу "И", Qlikview
Отправлено: kvv от 22 марта 2016, 05:28:15
Можно попробовать в Дименшне оставить Client, а в  Ехспрешене написать вот так:
sum({$<Product = {'Limon'}>}) Sales)

Название: Re: Выборка по принципу "И", Qlikview
Отправлено: Евгений от 22 марта 2016, 05:50:18
Спасибо за внимание к моему вопросу!
Limon покупали все 3 клиента.  А как мне найти тех клиентов, которые покупали и Limon и Mango ? Причем именно два товара вместе ( 2-ой и 3-ий клиент уже не подойдут)
Название: Re: Выборка по принципу "И", Qlikview
Отправлено: kvv от 23 марта 2016, 10:45:38
1. И все же, лимон покупали только 1-ый и 3-ий клиент.

2. Найти клиентов, которые покупали манго и лимон:
sum({$<Product = {'Limon', 'Mango'}>}) Sales)
Название: Re: Выборка по принципу "И", Qlikview
Отправлено: piton от 23 марта 2016, 11:16:02
Если  в Дименшне оставить Client и прописать.

if(sum( {<Client = p({1<Product={'Limon'}>}) >} Sales)> 0,
if (sum( {<Client = p({1<Product={'Mango'}>}) >} Sales)>0,
sum(Sales),
0))


То суммы будут только у клиентов которые купили и то и то. Но правда если клиентов схлопнуть до других показателей, то данные могут разъехаться.
Название: Re: Выборка по принципу "И", Qlikview
Отправлено: Bayun от 30 марта 2016, 05:07:17
Посмотрите, возможно это поможет: http://www.qlikfix.com/2013/10/23/and-or-mode-selections-in-qlikview/ (http://www.qlikfix.com/2013/10/23/and-or-mode-selections-in-qlikview/)
Но там жуткий изврат...  ;D
Название: Re: Выборка по принципу "И", Qlikview
Отправлено: Bayun от 31 марта 2016, 11:22:49
Вдогонку, возможно это тоже будет интересно:
http://www.infinityinsight.com/blog/?p=270 (http://www.infinityinsight.com/blog/?p=270)
Название: Re: Выборка по принципу "И", Qlikview
Отправлено: millik от 26 апреля 2016, 04:20:02
Попробуйте через операции с модификаторами множества.
sum({ <Product={'Limon'}> * <Client = p({1<Product={'Limon'}>}) >} Sales)

либо следующее выражение
sum({<Client = p({1<Product={'Limon'}, Client={"=Aggr(Count(distinct Product),Client)=1"}>}) >} Sales)
Название: Re: Выборка по принципу "И", Qlikview
Отправлено: admin от 26 апреля 2016, 06:20:01
Цитата: millik от 26 апреля  2016, 04:20:02  
Попробуйте через операции с модификаторами множества.
sum({ <Product={'Limon'}> * <Client = p({1<Product={'Limon'}>}) >} Sales)

либо следующее выражение
sum({<Client = p({1<Product={'Limon'}, Client={"=Aggr(Count(distinct Product),Client)=1"}>}) >} Sales)
Приветствую! 
Спасибо  ;)