我需要找到他们所做的所有员工(他们的名字)和“订单金额”(如果有的话),按名称从A到Z排序,确保所有结果列都有适当的名字。
这是我的要求:
select Employees.FirstName, count(Orders.OrderID) as "Amount of Orders"
from (Orders
inner join Employees
on Orders.EmployeeID=Employees.EmployeeID)
group by FirstName
having count(Orders.OrderID) >= 0;
但是这个请求并没有显示一个发出0个订单的员工。 有什么问题?
提前谢谢你。
答案 0 :(得分:1)
从Employees
加入Orders
并使用左连接而不是内部(或仍然从Orders
到Employees
,因为您已经写过 - 但使用权限加入这种情况)。
同时删除多余的having count(Orders.OrderID) >= 0;
条件(我无法想象您的方案中的负订单数):
select
Employees.FirstName,
count(Orders.OrderID) as "Amount of Orders"
from Employees
left outer join Orders on Orders.EmployeeID=Employees.EmployeeID
group by Employees.FirstName