169 похожих чатов

Начал смотреть урок от Фёдора Самородова по MSSQL и там в

качестве домашки на первом уроке просят вывести:
-- Сколько в каждой категории продано (штук) товаров от поставщика №1 во Францию
я уже запрос крутил и так и сяк, по одной категории количество получаю, а вот подсчёт по всем остальным не получается вывести (где NULL, там 0 должен быть)
SELECT c.CategoryID, c.CategoryName, ISNULL SUM(od.Quantity)
FROM [Categories] c LEFT JOIN
[Products] p ON c.CategoryID = p.CategoryID
AND p.SupplierID = 1
LEFT JOIN
[Order Details] od ON p.ProductID = od.ProductID LEFT JOIN
[Orders] o ON o.OrderID = od.OrderID
--AND o.ShipCountry = 'France'
--WHERE p.SupplierID = 1 --AND o.ShipCountry = 'France'
--WHERE o.ShipCountry = 'France'
GROUP BY c.CategoryID, c.CategoryName
показывает лишь одну категорию, ну либо все категории, но без подсчётов
может кто подскажет, как тут правильно построить запрос?
вот что выдаётся

13 ответов

23 просмотра

Если Вам не трудно, закинуть структуру таблицы и Ваш запрос сюда: https://sqlize.online

А можно ссылочку?

serg-n. Автор вопроса
Slava Rozhnev SQLtest.online https://phpize.online
Если Вам не трудно, закинуть структуру таблицы и В...

вот. закинул: https://sqlize.online/sql/mssql2017/96709dae0ae5e24d983c464455769b1d/ БД - классика Northwind, вот скрипт https://raw.githubusercontent.com/microsoft/sql-server-samples/master/samples/databases/northwind-pubs/instnwnd.sql ну и сам урок, мало ли кому-то инетересно будет: https://www.youtube.com/watch?v=s0eg-gq9h-4

serg n.
вот. закинул: https://sqlize.online/sql/mssql2017/...

Мне кажется Вам нужно сделать выборку from Orders, и присоединить другие таблицы

serg-n. Автор вопроса
Slava Rozhnev SQLtest.online https://phpize.online
Мне кажется Вам нужно сделать выборку from Orders,...

но в таблице Orders нет связей с категориями, по которым у поставщика есть продажи. мне же надо колво по категориям сделать

serg n.
но в таблице Orders нет связей с категориями, по к...

Группировка может быть и по присоединенной таблице.

select Ct.CategoryName , SUM( CASE WHEN OdDet.OrderID = Od.OrderId Then OdDet.Quantity ELSE 0 END ) from [dbo].[Order Details] as OdDet join [dbo].[Products] as Pd on OdDet.ProductID = Pd.ProductID join [dbo].[Categories] as Ct On Pd.CategoryID = Ct.CategoryID left join Orders as Od On OdDet.OrderID = Od.OrderID and Od.ShipCountry = 'France' and Pd.SupplierID = 1 group by Ct.CategoryName

Ilushka
select Ct.CategoryName , SUM( CASE WHEN OdDet.Or...

Зачем так сложно? SUM( CASE WHEN OdDet.OrderID = Od.OrderId Then OdDet.Quantity ELSE 0 END ) проще SUM(ISNULL(OdDet.Quantity),0)

Ilushka
select Ct.CategoryName , SUM( CASE WHEN OdDet.Or...

почему "left join Orders as Od" ? тут явно должен быть inner join SUM( CASE WHEN OdDet.OrderID = Od.OrderId Then OdDet.Quantity ELSE 0 END ) и это проще записать как SUM(ISNULL(OdDet.Quantity,0))

Владимир
почему "left join Orders as Od" ? тут явно должен ...

ну так запишите... с инер и вот этим.... исходно не я вроде спрашивал

Ты поместил условия, что должны фильтровать, в фразу on из left join - так это условие ничего фильтровать не будет.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта