Jag skulle sortera ut tio högsta resultaten från ett fält i en Accesstabell och summera dom. Enkelt trodde jag, men av någon anledning kommer 12 resultat med? Har lekt lite hit och dit med SQL-satsen och do until med det blir inte rätt hur jag än gör.
Kod:
SQLAdd = "SELECT TOP 10 * FROM resultat_agility WHERE agility_ar = '" & cStr(year(date)) & "' AND agility_ekipageid = " & request.QueryString("id") & " AND agility_klass = 'Hoppklass' ORDER BY agility_barometerpoang DESC"
Set rsAdd = CreateObject("ADODB.Recordset")
rsAdd.open SQLAdd, ConnectB
do until rsAdd.eof
totHoppklass = totHoppklass + rsAdd("agility_barometerpoang")
tott = tott & "," & rsAdd("agility_barometerpoang")
rsAdd.moveNext
loop
Jag tror jag kom på var problemet ligger. Resultat nr 10 11 och 12 är samma. d.v.s. 5 därför kommer alla 3 med på "top 10-listan". Har ingen aning hur jag skall tala om att endast ett resultat skall koma med, och att resultat 10 skall räknas och inte 11. Samma resultat måste givetvis få förkomma bland dom "tio i topp"
Har löst det, i brist på bättre, med en räknare och en if-sats som kollar om räknaren är 10 eller mindre. Finns säkert en smartare lösning, men det får duga tills jag kommer på hur det egentligen skall lösas.
He-he kul det här att prata med sig själv. Jag kom på hur det skulle lösas och lösningen var enklare än jag trodde. Jag behövde sortera på mer än resultatfältet för at slippa få med flera likadana resultat. Slutliga SQL-satsen blev så här, om någon är intresserad:
SQLAdd = "SELECT TOP 10 agility_barometerpoang FROM resultat_agility WHERE agility_ar = '" & cStr(year(date)) & "' AND agility_ekipageid = " & request.QueryString("id") & " AND agility_klass = 'Hoppklass' ORDER BY agility_barometerpoang DESC, agility_id"
He-he kul det här att prata med sig själv. Jag kom på hur det skulle lösas och lösningen var enklare än jag trodde. Jag behövde sortera på mer än resultatfältet för at slippa få med flera likadana resultat. Slutliga SQL-satsen blev så här, om någon är intresserad:
SQLAdd = "SELECT TOP 10 agility_barometerpoang FROM resultat_agility WHERE agility_ar = '" & cStr(year(date)) & "' AND agility_ekipageid = " & request.QueryString("id") & " AND agility_klass = 'Hoppklass' ORDER BY agility_barometerpoang DESC, agility_id"
Du pratar inte bara med dig själv. Andra skriver i tråden också. Du kan markera ditt inlägg nr #5 som lösning. I tråden http://www.webforum.nu/showthread.php?t=180608 diskuteras sådant tydligare.