Just nu i M3-nätverket
Jump to content

Join som även räknar 0?


Anders (interakt.nu)

Recommended Posts

Anders (interakt.nu)

Säg att man har en sql-sats liknande den här nedan:

use northwind
select companyName, count(s.supplierID) from suppliers s, products p
where p.supplierID = s.supplierID group by companyName
Kör man den i query analyzer får man något i stil med:

Aux joyeux ecclésiastiques	2
Bigfoot Breweries	3
Cooperativa de Quesos 'Las Cabras'	2
Escargots Nouveaux	1
Exotic Liquids	3
Den funkar ju jättefint när man vill ha reda på hur många produkter olika leverantörer har. Men säg nu att man har en leverantör som har 0 produkter. Hur gör man då för att få med det i sql-satsen på ett enkelt och smidigt sätt? Dvs så att resutlatet ska kunna bli t ex såhär:

Aux joyeux ecclésiastiques	0
Bigfoot Breweries	3
Cooperativa de Quesos 'Las Cabras'	2
Escargots Nouveaux	0
Exotic Liquids	3
Jag har labbat lite med att köra en union på 2 selectsatser, men det känns inte riktigt optimalt:

use northwind
select companyName, count(s.supplierID) from suppliers s, products p
where p.supplierID = s.supplierID group by companyName

union

select companyName, 0 from suppliers s
where supplierID not in (select supplierID from products)
Någon som har några tips??

 

[inlägget ändrat 2002-05-10 11:22:42 av Andersb]

Link to comment
Share on other sites

select companyName, count(p.supplierID)

from suppliers s left join products p

on s.supplierID = p.supplierID

group by companyName

 

 

 

Link to comment
Share on other sites

Anders (interakt.nu)

Naturligtvis, så enkelt det är när någon annan berättar hur man ska göra... :-) Tackar!

 

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...