Hybris реляционный выбор FlexibleSearch - PullRequest
2 голосов
/ 16 мая 2019

Hybris создает несколько тележек для пользователя для одного и того же базового магазина.Как выбрать пользователей, которые имеют более одной корзины в одном магазине?

Позже я отсортирую их и удалю самую старую.

SELECT {u.code} as userCode,
       {c.code} as cartCode,
       {c.site} as cartSite
FROM {User as u join Cart as c on {u.pk} = {c.user}}
WHERE...

Ответы [ 2 ]

2 голосов
/ 16 мая 2019

Используйте это:

select {u.pk}, {b.pk}, count(distinct({c.pk})) 
from {
   user as u 
   join cart as c on {c.user} = {u.pk} 
   join basestore as b on {b.pk} = {c.store}
} 
group by {u.pk}, {b.pk} 
having count(distinct({c.pk})) > 1
1 голос
/ 16 мая 2019

Если вы используете сохраненные функции корзины и котировки, вы можете подумать о том, чтобы не включать их в результат, добавив WHERE {c.saveTime} IS NULL AND {c.quoteReference} IS NULL

select {u.pk}, {b.pk}, count(distinct({c.pk})) 
from {
   user as u 
   join cart as c on {c.user} = {u.pk} 
   join basestore as b on {b.pk} = {c.store}
}

WHERE {c.saveTime} IS NULL AND {c.quoteReference} IS NULL
GROUP BY {u.pk}, {b.pk}
having count(distinct({c.pk})) > 1

Обновление:

Чтобы получитьЕдинственный список пользователей:

select {u.pk} 
from {...
...