Предполагая, что поставщики не могут поставлять каждый тип продукта, вы захотите использовать внешние соединения.
Если вы используете внутренние соединения, вы вернете только тех поставщиков, которые поставят хотя бы по одной продукции.
Вы также хотите посчитать отдельный ProductId для каждого типа продукта. В противном случае вы получите
влияет мультипликация. (Например, Поставщик 1 предоставляет Компьютеры 1 и 2 и отображает 10 и 11,
Вы получите четыре строки: Дисплей 10 компьютера 1, Дисплей 11 компьютера 1, Компьютер 4 и Дисплей 11.)
Опираясь на ответ ГБН:
SELECT
Supplier.SupplierID,
COUNT(distinct Computers.ComputerID) as Computers,
COUNT(distinct Displays.DisplayID) as Displays,
COUNT(distinct Foos.FooID) as Foos,
COUNT(distinct Bars.BarID) as Bars
FROM Supplier
LEFT OUTER JOIN Computers
ON Supplier.SupplierID = Computers.SupplierID
LEFT OUTER JOIN Displays
ON Supplier.SupplierID = Displays.SupplierID
LEFT OUTER JOIN Foos
ON Supplier.SupplierID = Foos.SupplierID
LEFT OUTER JOIN Bars
ON Supplier.SupplierID = Bars.SupplierID
GROUP BY
Supplier.SupplierID