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)
使用左连接
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)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |