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
Ä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