webForumDet fria alternativet

Ordning efter antal röster

ASP

9 svar · 228 visningar · startad av Bj

Medlem sedan sep. 2000314 inlägg
Frågan#1
sql1 = "select * from ans where queID="&queID
sql2 = "SELECT SUM(total) FROM ans where queID="&queID

Jag skulle vilja att svaren visas efter resultat. Alltså flest röster=högst upp.
ORDER BY???
Någon som vet hur jag skall göra?

Medlem sedan juli 2001203 inlägg
#2

Om jag fattade rätt:

sql2 = "SELECT SUM(total) AS summa FROM ans where queID="&queID&" ORDER BY summa"
Medlem sedan sep. 2000314 inlägg
#3

Då fick jag följande felmeddelande:
För få parametrar angavs. 1 förväntades. line 54

	sql1 = "select * from ans where queID="&queID
	'sql2 = "SELECT SUM(total) FROM ans where queID="&queID
	sql2 = "SELECT SUM(total) AS summa FROM ans where queID="&queID&" ORDER BY summa"
	response.write "<b>" & rs("que") & "</b><br>"
	set rs1 = conn.execute(sql1)
	set us = conn.execute(sql2) 
	final_total=us(0).value

Rad 54 är den där det står set us =conn.execute(sql2)

Medlem sedan juli 20011 084 inlägg
#4

du kan väll inte använda rs("que") där? eller har du öppnat den tidigare?

Medlem sedan sep. 2000314 inlägg
#5

Ja den är öppen sedan tidigare. Har alltså 4 stycken omröstningar på en gång och visar då frågan först och sedan svaren...

Medlem sedan juli 2001203 inlägg
#6

har du access?? i så fall får du nog skriva

ORDER BY 0
Medlem sedan sep. 2000314 inlägg
#7

jepp det är access men då får jag upp följande fel.
Det går inte att identifiera '0' som ett giltigt fältnamn eller uttryck i Microsoft Jet.

Medlem sedan dec. 200012 464 inlägg
#8
order by 1
Medlem sedan sep. 2000314 inlägg
#9

Ja nu visar den resultaten men i samma ordning som de ligger inlagda i databasen. Ingen förändring mot originalalternativet alltså.
Om det är så här du menade LarsG?

sql2 = "SELECT SUM(total) AS summa FROM ans where queID="&queID&" ORDER BY 1"
Medlem sedan juli 2002145 inlägg
#10

Hej Bj!

Du behöver inte göra två frågor för att få ut informationen! Gör så här:

SELECT queID, SUM(total) as summa
FROM ans 
GROUP BY queID
ORDER BY 2 DESC

Du måste rabbla upp de kolumner du vill visa (det går inte med *) både i SELECT-delen och i GROUP BY-klausulen. Summeringen blir förstås per varje unik kombination av värden i de uppradade kolumnerna. Siffran som ska stå i ORDER BY-delen är ordningsnumret för den kolumn du vill sortera på, dvs 1 för queID och 2 för summa i exemplet ovan. När det gäller "vanliga" kolumner kan du naturligtvis använda kolumnnamnet, exv "ORDER BY queID". Det är bara för beräknade kolumner, exv SUM(kolnamn), COUNT(*), MAX(kolnamn), etc, som man i vissa databashanterare måste använda siffran.

286 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
160 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)