I have three tables: Customer - Region - Carrier
I need to find out how many customers each carrier has.
select CarrierFirstName + ' ' + carrierlastname ' Carrier Name', CustomerID
from Carrier
inner join Route ON Carrier.CarrierID = Route.CarrierId
inner join Customer ON Customer.RouteID = Route.RouteID
group by carrier.CarrierFirstName, CarrierLastName, CustomerID
This gives me carrier names several times and each distinct customerID, whereas i need names followed by the TOTAL number of customers associated with each name
Joe Johnson | 15|
Carrie Lan | 12|
You need to fix the group by
. This also uses table aliases to simplify the query:
select (c.CarrierFirstName + ' ' + c.carrierlastname) as carrier_name,
count(*)
from Carrier c inner join
Route r
on c.CarrierID = r.CarrierId inner join
Customer cu
on cu.RouteID = r.RouteID
group by c.CarrierFirstName, c.CarrierLastName