2017-03-13 49 views
1

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

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

一個Route只有一個載體。

我需要顯示的客戶數,每個承運人負責。

我知道我需要使用CarrierID得到路由ID,然後使用路由ID與路由ID來算客戶的行。

有人能向我解釋說SELECT語句是什麼樣子?

+2

你熟悉'JOIN'?這是一個非常基本的SQL概念。 –

回答

0

如果您需要客戶的不同號碼,您可以通過使用count(不同..)組,並加入

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 
+0

如果我需要在相同的結果中顯示「Carrier.FirstName」和「Carrier.LastName」,該怎麼辦? – zuddsy

+1

只是另一個加入..答案更新 – scaisEdge

相關問題