Как отобразить результат при count=0 для внутреннего соединения SQL?
Это интервью с тестом SQL, который поставил меня в тупик. Вот вопрос: в каждом филиале офиса есть квота продаж, которую должен выполнить каждый продавец. SQL-запрос должен отображать количество продавцов в каждом филиале, равное или превышающее квоту продаж. Есть 2 таблицы,
Branch
и SalesPerson
. SalesPerson
связано с Branch
через BranchID
. Branch
стол имеет Quota
поле, которое должно быть выполнено каждым SalesPerson
'с Sales
Поле.Предусмотрены команды SQL для создания таблиц.
CREATE TABLE [dbo].[Branch]( [ID] [int] NOT NULL, [Quota] [int] NOT NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[SalesPerson]( [ID] [int] NOT NULL, [Name] [nchar](10) NOT NULL, [Sales] [int] NOT NULL, [BranchID] [int] NOT NULL ) ON [PRIMARY] GO
Ниже приведены команды SQL для заполнения таблиц.
INSERT INTO Branch (ID, Quota) VALUES (1, 500); INSERT INTO Branch (ID, Quota) VALUES (2, 600); INSERT INTO SalesPerson (ID, Name, Sales, BranchID) VALUES (1, 'John', 500, 1); INSERT INTO SalesPerson (ID, Name, Sales, BranchID) VALUES (2, 'Jane', 400, 2);
Что я уже пробовал:
SELECT B.ID AS BranchNum, COUNT(*) AS EligibleSalesPersonCount FROM SalesPerson AS S INNER JOIN Branch AS B ON (S.BranchID = B.ID) WHERE S.Sales >= B.Quota GROUP BY B.ID;
Мой Выход
BranchNum EligibleSalesPersonCount 1 1
Ожидаемый Результат
BranchNum EligibleSalesPersonCount 1 1 2 0
Мой вопрос заключается в том, как отобразить результат, когда EligibleSalesPersonCount равен 0?