oskarsMedlem sedan nov. 20051 317 inlägg Hejsan,
jag har följande kod:
<%
Set Recset = Server.CreateObject("ADODB.Recordset")
SQL = "Select * FROM Users WHERE Grad = 1 ORDER BY Namn asc"
RecSet.Open SQL, Connect, 1, 2
Color = "EEE"
Do Until RecSet.EOF
Set Recset2 = Server.CreateObject("ADODB.Recordset")
SQL2 = "Select SUM(Pris) AS Pris FROM Konto WHERE sID = '"&RecSet("Namn")&"'"
RecSet2.Open SQL2, Connect, 1, 2
%>
<tr style="background-color:#<%=Color%>">
<td><%=RecSet("Namn")%></td>
<td><%=RecSet2("Pris")%></td>
</tr>
<%
RecSet.MoveNext
If Color = "EEE" Then
Color = "FFF"
Else
Color = "EEE"
End If
Loop
RecSet.Close
Set RecSet = Nothing
%>
Här sorterar jag ju efter Namn ... men hur gör jag för att sorta efter SUM(Pris)? Jag vill skapa mig en liten topplista...
Tacksam för hjälp =)
@ndersMedlem sedan juni 200032 969 inlägg ... ORDER BY Sum(Pris) DESC
?
Du behöver nog skriva om dina sql-frågor till en jätteläcker join, men det ordnar du säkert :)
edit: eftersom jag inte hade något bättre för mig får du något att leka med:
SELECT u.Namn, SUM(k.Pris) AS Pris
FROM Users u
INNER JOIN Konto k ON k.sID = u.Namn
WHERE u.Grad = 1
GROUP BY u.Namn
ORDER BY SUM(k.Pris) DESC
mvh
oskarsMedlem sedan nov. 20051 317 inlägg Oj, fräckt! Tack så mycket! Återigen.
Försöker analysera koden.
Om jag förstått det rätt så definierar du Users till en "variabel" som du valt att kalla "u", eller? Och "u" använder man sen som förkortning till typ u.Namn etc?
FROM Users u
Jag fick det att fungera. Nu återstår att försöka lära sig det här så man kan det själv :)
@ndersMedlem sedan juni 200032 969 inlägg
Om jag förstått det rätt så definierar du Users till en "variabel" som du valt att kalla "u", eller? Och "u" använder man sen som förkortning till typ u.Namn etc?
Yes - jag satte bara ett alias på tabellen för att få det tydligt men inte onödigt mycket att skriva.
man _kan_ skriva "FROM Users AS u" om man vill göra det tydligare men inget måste.
SPiNMedlem sedan mars 20007 896 inlägg Använder man nyckelordet "AS" från början blir det heller inga problem vid eventuell portning till någon annan DBMS, värt att notera.
LarsGMedlem sedan dec. 200012 464 inlägg Flyttas från ASP
order by sum(k.pris)
är inte tillåtet i standard SQL. Använd korrelationsnamnet istället
order by pris
@ndersMedlem sedan juni 200032 969 inlägg LarsG - jag har uppfattningen att det inte alltid fungerar att sortera på korrelationsnamnet - minns jag fel? :)
Det är såklart bättre - om det nu går bra. :)
LarsGMedlem sedan dec. 200012 464 inlägg Det fungerar inte i Access. Där kan man använda positionen i select-listan. Det är i och för sig inte heller standard men fungerar så vitt jag vet i alla DBMS. Jag vet dock att flera DBMS inte stöder aggregatfunktioner i order by.
oskarsMedlem sedan nov. 20051 317 inlägg Jag kör MySQL, om ni undrar :)