webForumDet fria alternativet

Räkna deltagare i varje klass

Databaser & SQL

3 svar · 355 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Frågan#1

Hmm, har funderat och letat lite men inte hittat något vettigt så lite hjälp på traven vore prima! :)

Jag har en Access-databas som innehåller 3 tabeller (medlemmar, tävlingar, anmälningar). Anmälningstabellen ser ut ungefär såhär:

AnvändarID, TävlingsID, Klass

Jag borde kanske ha en klass-tabell också men det är inte relevant här...

Finns det något smidigt sätt att plocka ut hur många anmälda varje klass har? Anmälnigstabellen kan t.ex. se ut såhär:

1, 1, H20
2, 1, H20
3, 1, H21
4, 1, H35

Efter en SQL fråga vill jag kunna skriva ut:

H20: 2 anmälda
H21: 1 anmäld
H35: 1 anmäld

Om jag vet namnen på klasserna som man anmäler sig till kan jag kör en SQL-sats per klass och kolla hur många det är. Men om jag inte vet klassnamnet??

Det enda jag kan tänka på är hur man får fram hur många klasser det finns. Men det är ju inte det jag vill ha :P

Medlem sedan juli 20041 183 inlägg
#2

Äh, typiskt. Jag hittade en ok lösning nu. Jag undrar dock fortfarande om man inte kan göra detta med bara en enda SQL-fråga. Här är i alla fall det jag kom fram till.

Först hämtar jag namnen på alla klasser och sen kollar jag, med en SQL-fråga för varje klass, hur många anmälda klassen har.

'----- Hämtar alla klasserna
SQL = "SELECT DISTINCT Klass FROM Anmälning WHERE TavlingsID = 1;"
objRs.Open SQL, objConnection, 1, 2

While Not objRs.EOF
	'----- Kollar hur många anmälda klassen har
	SQL = "SELECT COUNT(*) AS antalAnmalda FROM Anmälning WHERE Klass = '" & objRs("Klass") & "' AND TävlingsID = 1;"
	Set objRs2 = objConnection.Execute(SQL)
	
	Response.Write(objRs("Klass") & ": " & objRs2("antalAnmalda") & "<br />")
	
	objRs.MoveNext
Wend
Medlem sedan dec. 19996 721 inlägg
#3
SELECT Klass,COUNT(*) AS antalAnmalda FROM Anmälning 
GROUP BY Klass
Medlem sedan juli 20041 183 inlägg
#4

Tack emission! Klockrent och precis vad jag letade efter :)

250 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)