计算并加入Where

Kar*_*ski 0 sql t-sql sql-server-2008-r2

顾客

CustomerID Name
4001       John Bob
4002       Joey Markle
4003       Johny Brown
4004       Jessie Black
Run Code Online (Sandbox Code Playgroud)

命令

OrderID    Customer   Status
50001      4001       Paid
50002      4002       Paid
50003      4001       Paid
50004      4003       Paid
50005      4001       Paid
50006      4003       Paid
50007      4004       Unpaid
Run Code Online (Sandbox Code Playgroud)

我试过这次加入

Select c.Customer, COUNT(o.OrderID) as TotalOrders
from Customer c
inner join Orders o
on c.Customer = o.Customer
Where o.Status = 'Paid'
Group by c.Customer
Run Code Online (Sandbox Code Playgroud)

但这是结果.

Customer  TotalOrders
4001      3
4002      1
4003      2
Run Code Online (Sandbox Code Playgroud)

未付款的客户不包括在内.我将如何包括所有客户?

Customer  TotalOrders
4001      3
4002      1
4003      2
4004      0
Run Code Online (Sandbox Code Playgroud)

Dij*_*aaf 5

使用左连接

Select c.Customer, COUNT(o.OrderID) as TotalOrders
from Customer c
left join Orders o
on c.Customer = o.Customer
Group by c.Customer
Run Code Online (Sandbox Code Playgroud)