我是SQL的新手,但已经很容易陷入麻烦。
我有一个名为Sales的表,其中包含与销售相关的自然字段,其中包括一个称为Salesman的字段。
我还有另一个表叫Salesmen,只包含销售员姓名。
我想要一个报告,该报告计算每个销售员的所有销售额,包括由于销售不足而未在“销售”表中提及的每个销售员的结果。
以下代码可以正常工作,除了表现欠佳的推销员不会显示之外,只会显示那些已经卖出东西的人。
SELECT salesman,
count(*) as nmbr
FROM Sales
JOIN Salesmen
ON Sales.salesman = Salesmen.name
GROUP BY Salesmen.name
order by nmbr;
我相信右外连接将解决此问题,但我使用的是SQLITE不允许这样做。
有什么解决方法的主意,以便我找出哪个推销员什么都没卖?
最佳答案
SQLite是否支持LEFT外部联接?
SELECT salesmen.name
count(sales.salesman) as nmbr
FROM Salesmen
LEFT JOIN Sales ON Sales.salesman = Salesmen.name
GROUP BY Salesmen.name
ORDER BY nmbr;