Har en selectsats där jag räknar antal medlemmar per förening från tabellen MEDLEM
SELECT COUNT(MEDLEM.FöreningId) AS [antal], MEDLEM.FöreningId From MEDLEM
Where (MEDLEM.DistriktId = 2)
GROUP BY MEDLEM.FöreningId
Order By MEDLEM.FöreningId
Tyvärr finns inte föreningsnamnet med i den tabellen (MEDLEM) utan den finns i tabellen DISTRIKT
FöreningId är det samma i tabellen MEDLEM och tabellen DISTRIKT
Nu visas bara columnen antal och FöreningId
Jag vill hämta columnen föreningsnamn från tabellen DISTRIKT så columnerna antal, FöreningId och Föreningsnamn visas.
Hur gör jag det. Har testat med join men får inte till det....
SELECT COUNT(*) AS antal,
district.föreningsnamn
From MEDLEM join district on medlem.föreningsid = district.föreningsid
Where MEDLEM.DistriktId = 2
GROUP BY district.Föreningsnamn
Order By district.Föreningsnamn
försöker visa även MEDLEM.FöreningId men får:
Column 'MEDLEM.Förening'id is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Tack för svaren, börjar se en strimma ljus nu;-)
Nedan får jag ut det jag vill just nu.
Distriktets id, föreningens id, samt antal medlemmar per förening i distriktid 25
SELECT COUNT(*) AS antal, m.föreningid, d.föreningsnamn
From MEDLEM m INNER JOIN DISTRIKT on m.distriktid = d.distriktid And m.föreningid = d.föreningid
Where m.distriktid = 25
GROUP BY d.Föreningsnamn, m.föreningid
Order By m.föreningid
Men för att krångla till det ännu mer....
I tabellen MEDLEM finns det även en column som heter SEX och alla medlemmar får värdet MAN eller KVINNA
Är det möjligt att i samma selectsats även lägga in 2 COUNT till. ta ut antal kvinnor och antal män per förening som listas?
Eller har jag övertro på sql:-)
SELECT COUNT(*) AS antal,
sum(case when sex = 'KVINNA' then 1 else 0 end) as F,
sum(case when sex = 'MAN' then 1 else 0 end) as M,
sum(case when sex not in('KVINNA','MAN') then 1 else 0 end) as T,
m.föreningid,
d.föreningsnamn
From MEDLEM m INNER JOIN DISTRIKT d on m.distriktid = d.distriktid And m.föreningid = d.föreningid
Where m.distriktid = 25
GROUP BY d.Föreningsnamn, m.föreningid
Order By m.föreningid
Oj, man kan bara buga för detta och inser snabbt att man har mycket att lära.
Tusen tack för hjälpen, och som du redan visste fungerar det perfekt.....