Как в одном sql запросе подсчитать кол-во чеков по условиям, если каждый чек занимает несколько строк (по количеству позиций в нем)?
Имеется таблица со след. столбцами:
1. номером чека (первый - несколько строк с "1", второй - несколько строк с "2" и т.д )
2. номером уникальной позиции в чеке (1,2 для первого чека, 1,2,3 для второго и т.д)
3. количеством товаров по каждой позиции из п.2.
Нужно в одном запросе подсчитать кол-во чеков с условием определенного количества товаров в них.
Нужно посчитать количество чеков, в которых куплено больше 2-х пар любой обуви и есть любой товар из категории туризм.
- where c уточнением категории во вложенном запросе выдает 2:
SELECT count(Id_check_sum)
FROM (SELECT count(id_check) as Id_check_sum, sum(quantity), category
FROM checks
INNER JOIN Products
ON checks.art = Products.art
WHERE category like 'туризм'
GROUP BY id_check
HAVING sum(quantity) > 2)
- where c уточнением категории в основном запросе выдает 0.
C %туризм% то же самое.
Проблема в том, что "sum(quantity) > 2" в моем запросе работает на количество товаров в чеке именно в категории "туризм", а не к общему количеству товаров в чеке. Соответственно, "пропадает" два чека, в котором суммарное количество позиций больше двух, а количество позиций "туризм" <= 2 (чеки 2 и 3).
Прошу прощения, догадываюсь, что вопрос простой, но я только начинаю знакомство с sql и пока не до конца понимаю алгоритм работы.