Я изучаю SQL на известной базе данных "Борей".
Итак, вот схема: https://miro.medium.com/max/4800/1*vluK_68f8_WnlL66qmRrXQ.png
Я хочу вернуть информацию о клиентах, для которых компания "United Package" перевезла не менее 7 посылок. Вот я и хочу их посчитать.
Когда я пытаюсь это:
select c.CompanyName,
count(o.OrderID) as number_packages
from Customers as c
join Orders as o
on c.CustomerID = c.CustomerID
join Shippers as s
on o.ShipVia = s.ShipperID
where s.CompanyName like 'united package'
group by c.CompanyName;
Он возвращает мне таблицу с правильным CompanyName и в number_packages во всех строках 326 ... Так что я думаю, что это количество всех пакетов, транспортируемых «Объединенным пакетом».
Как сделать, чтобы расчет был правильным?
Ваше первое условие join
неверно:
from Customers c join
Orders o
on c.CustomerID = c.CustomerID
--------^ should be o
О, спасибо! Иногда нам нужен дополнительный взгляд! :)