Фильтрация запроса путем передачи idProduct, количества - PullRequest
0 голосов
/ 03 ноября 2019

Я хочу создать Order_List с различными ПУНКТАМИ из таблицы с именем: Продукты

Внутри таблицы Продукты есть дубликаты, потому что продукт продается в разных супермаркетах с разными ценами.

Я хочу, чтобы пользователь ввел желаемый продукт внутри Список таблиц и получил самую низкую цену. ОБРАТИТЕ ВНИМАНИЕ, что у каждого пользователя свой почтовый индекс, и каждый продукт принадлежит отдельному супермаркету с другим почтовым индексом. Идея состоит в том, чтобы получить самую низкую цену ТОЛЬКО, если товар имеет тот же почтовый индекс клиента . Кроме того, количество, которое было вставлено в таблицу списка, должно быть сверено с таблицей запасов.

Это то, чтоу меня есть:

http://sqlfiddle.com/#!9/f9f73a/1

Это мой пример:

image

Это то, что я пробовал до сих пор:

select p.idProduct, name, price, min(price)
from product p
inner join market m
on p.idMarket = m.idMarket
inner join stock s
on p.idProduct = s.idProduct
inner join list l
on p.idProduct = l.idProduct
where p.idProduct = 14
and exists (select 1 
           from stock s
           where p.idProduct = s.idProduct
           and l.quantity <= s.quantity)
group by p.idProduct, name, price

Не могли бы вы помочь мне решить этот беспорядок?

1 Ответ

0 голосов
/ 03 ноября 2019
select p.idProduct, p.name, p.price, min(p.price)
from product p
inner join market m
on p.idMarket = m.idMarket
inner join stock s
on p.idProduct = s.idProduct
inner join list l
on p.idProduct = l.idProduct
where p.idProduct = 14
and exists (select 1 
           from stock s1
           where p.idProduct = s1.idProduct
           and l.quantity <= s1.quantity)
and p.price = (select min(price) from product p2 where p2.idProduct = p.idProduct)
group by p.idProduct, p.name, p.price
...