SELECT p.län, sum(case when ufa.arbetsgivare is not null then 1 else 0 end) AS uppdragsRäknare
FROM Plats p
LEFT OUTER JOIN Uppdrag u
ON p.id=u.län
AND u.är_öppen=1
LEFT OUTER JOIN UppdragFörArbetsgivare ufa
ON ufa.uppdrag=u.id
AND ufa.arbetsgivare=5
GROUP BY p.län
ORDER BY p.län ASC
Hej!
Jag har ett antal tabeller;
Uppdrag
-------
id öppen län ...
Arbetsgivare
------------
id namn ...
Plats
-----
id län ...
UppdragFörArbetsgivare
----------------------
uppdrag arbetsgivare
Ett uppdrag hör till precis ett (1) län, men kan tillhöra flera uppdragsgivare. En uppdragsgivare kan ha flera uppdrag.
Nu vill jag räkna upp antalet uppdrag i ett län, som gäller för en specifik arbetsgivare. Jag verkar inte komma runt SQL-frågan, då jag i resultatet enbart får ut antal uppdrag i ett län - oberoende av arbetsgivare.
T.ex:
Förväntat resultat: (exempel)
län uppdragsRäknare
--- ---------------
Stockholm 5
Västra Götaland 8
Dalarna 2
...
Men jag får istället då ut antalet totala uppdrag i länet: (exempel)
län uppdragsRäknare
--- ---------------
Stockholm 45
Västra Götaland 32
Dalarna 9
...
Frågan för att räkna alla uppdrag grupperat efter län, oberoende av uppdragsgivare:
SELECT p.län, COUNT(u.id) AS uppdragsRäknare
FROM Plats p
LEFT OUTER JOIN Uppdrag u
ON p.id=u.län
AND u.är_öppen=1
GROUP BY p.län
ORDER BY p.län ASC
Frågan som jag försöker ställa, men får ett likadant resultat:
SELECT p.län, COUNT(u.id) AS uppdragsRäknare
FROM Plats p
LEFT OUTER JOIN Uppdrag u
ON p.id=u.län
AND u.är_öppen=1
LEFT OUTER JOIN UppdragFörArbetsgivare ufa
ON ufa.uppdrag=u.id
AND ufa.arbetsgivare=5
GROUP BY p.län
ORDER BY p.län ASC
Har nu försökt med olika typer av joins - men det känns som att jag slår huvudet mot väggen hela tiden då jag får exakt samma resultat... Så jag känner att jag behöver lite hjälp. :)
Tack!