簡體   English   中英

SQL使用列值從另一個表中獲取列值,然后使用THAT值從第三個表中獲取具有該值的列數?

[英]SQL using column value to get column value from another table, then using THAT value to get count of columns from a third table with that value?

我有三張桌子:

Carrier(CarrierID(PK), FirstName, LastName)
Customer(CustomerID(PK), FirstName, LastName, RouteID(FK))
Route(RouteID(PK), CarrierID(FK), RouteName)

每條路線只有一個承運人。

我需要顯示每個運營商負責的客戶數量。

我知道我需要使用CarrierID來獲取RouteID,然后使用RouteID來計算具有該RouteID的Customers行。

有人可以向我解釋SELECT語句的外觀嗎?

如果您需要不同數量的客戶,您可以使用count(distinct ..)group by和join

select r.CarrierID, count(distinct CustomerID )
from Route r
inner join Customer c on c.RouteID = r.RouteID
group by r.CarrierID


select r.CarrierID, c2.Firstname, c2.Lastname, count(distinct CustomerID )
from Route r
inner join Customer c on c.RouteID = r.RouteID
inner join Carrier c2 on c2.CarrierID = r.CarrierID
group by r.CarrierID, c2.Firstname, c2.Lastname

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM