ArneMedlem sedan maj 2000267 inlägg 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....
(använder MsSql)
LarsGMedlem sedan dec. 200012 464 inlägg 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
ArneMedlem sedan maj 2000267 inlägg visa 3 columner
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.
Vad felar?
Ursäkta dumma frågor......
LarsGMedlem sedan dec. 200012 464 inlägg Om du vill ha med fler kolumner i select-listan så måste du lägga till dem i group by också.
ArneMedlem sedan maj 2000267 inlägg Antal Män och Kvinnor
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:-)
LarsGMedlem sedan dec. 200012 464 inlägg 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
ArneMedlem sedan maj 2000267 inlägg 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.....
@ndersMedlem sedan juni 200032 969 inlägg