Hur skriver jag för att sortera posterna efter datumet i den här satsen?
SQL = "SELECT * FROM debatt_svar WHERE SID = " & Request.QueryString("DID")
Set RS2 = Connection.Execute(SQL)
7 svar · 288 visningar · startad av k0ffe
Hur skriver jag för att sortera posterna efter datumet i den här satsen?
SQL = "SELECT * FROM debatt_svar WHERE SID = " & Request.QueryString("DID")
Set RS2 = Connection.Execute(SQL)
SQL = "SELECT * FROM debatt_svar WHERE SID = " & Request.QueryString("DID") & " ORDER BY datum"
Tipsar lite om SQL-forumet.
Flyttas från ASP
Nu ett nytt problem:
På förstasidan där alla debatt-rubriker visas, vill jag sortera dessa efter debatten med nyast svar.
<%
Set RecSet = Server.CreateObject("ADODB.Recordset")
Set objRSAnswer = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT (select count(*) from debatt) As AntalDebatt, *, Format$([datum],'yyyy/mm/dd') AS formdatum FROM debatt order by datum desc"
RecSet.Open SQL, Connection, adOpenStatic, adLockOptimistic
response.write "<b>" & recset("AntalDebatt") & "</b>"
%> debatter
Rubrik:
Datum:
Antal svar:
<% while not recset.eof %>
<% response.write (" » " & "<a href=""visa_debatt.asp?DID=" & recset("DID") & """>" & Recset("rubrik") & "</a>" ) %>
<%=RecSet("forfattare")%>
<%= FormatDateTime(recset("datum"),2) %>
<%
strSQL = "SELECT Count(*) FROM debatt_svar WHERE SID = " & RecSet("DID")
objRSAnswer.Open strSQL, Connection, adOpenStatic, adLockOptimistic
If objRSAnswer.EOF Then
Response.Write "0 "
Else
Response.Write objRSAnswer(0) & " "
End If
objRSAnswer.Close
%>
<%
RecSet.MoveNext
Wend
RecSet.Close
Set RecSet = Nothing
Set objRSAnswer = Nothing
%>
Precis som här på WF :)
<%
SQL = "SELECT (select count(*) from debatt) As AntalDebatt, did,rubrik,forfattare, " & _
" Format$([datum],'yyyy/mm/dd') AS formdatum , (select count(*) from debattSvar " & _
" where SID = C.DID ) , (select max(svarsDatum) from debattSvar " & _
" where SID = C.DID ) FROM debatt c order by 7 desc"
set recset = connection.execute(sql)
if not recset.eof then
response.write "<b>" & recset("AntalDebatt") & "</b>"
%> debatter
Rubrik:
Datum:
Antal svar:
<%
while not recset.eof
response.write " » " & "<a href=""visa_debatt.asp?DID=" & recset("DID") & """>" & Recset("rubrik") & "</a>"
response.write RecSet("forfattare")
response.write Recset("formdatum")
response.write Recset(5) & " "
RecSet.MoveNext
Wend
end if
RecSet.Close
Set RecSet = Nothing
%>
Lägg aldrig en select inuti i en loop på det sättet. Det är ett säkert sätt att få dålig prestanda. Hämta bara de kolumner du skall visa, dvs använd aldrig select *. Det finns ingen anledning att skapa recordset explicit.
Hmm... det blir ingen skillnad?
Det är fortfarande den senast skrivna debatten som hamnar överst. Inte den som har det senast skrivna svaret.
Då är det fel i Access.
SQL = "SELECT antalDebatt, did,rubrik,forfattare, " & _
"formdatum, antalSvar, senastSvar " & _
" from (select count(*) from debatt) As AntalDebatt, " & _
" Format$([datum],'yyyy/mm/dd') AS formdatum , " &_
" did,rubrik,forfattare, " & _
" (select count(*) from debattSvar " & _
" where SID = C.DID ) as antalSvar , " & _
" (select max(svarsDatum) from debattSvar " & _
" where SID = C.DID ) as senastSvar FROM debatt c ) dt" & _
" order by senastSvar desc"
Jag blir galen!
<%
Set RecSet = Server.CreateObject("ADODB.Recordset")
Set objRSAnswer = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT antalDebatt, did,rubrik,forfattare, " & _
"formdatum, antalSvar, senastSvar " & _
" from (select count(*) from debatt) As AntalDebatt, " & _
" Format$([datum],'yyyy/mm/dd') AS formdatum , " &_
" did,rubrik,forfattare, " & _
" (select count(*) from debatt_svar " & _
" where SID = C.DID ) as antalSvar , " & _
" (select max(Datum) from debatt_svar " & _
" where SID = C.DID ) as senastSvar FROM debatt c ) dt" & _
" order by senastSvar desc"
RecSet.Open SQL, Connection, adOpenStatic, adLockOptimistic
response.write "<b>" & recset("AntalDebatt") & "</b>"
%>debatter
Rubrik:
Skribent:
Datum:
Antal svar:
<%
while not recset.eof
response.write (" » " & "<a href=""visa_debatt.asp?DID=" & recset("DID") & """>" & Recset("rubrik") & "</a>" ) %>
<%=RecSet("forfattare")%>
<%= FormatDateTime(recset("datum"),2) %>
<%
strSQL = "SELECT Count(*) FROM debatt_svar WHERE SID = " & RecSet("DID")
objRSAnswer.Open strSQL, Connection, adOpenStatic, adLockOptimistic
If objRSAnswer.EOF Then
Response.Write "0 "
Else
Response.Write objRSAnswer(0) & " "
End If
objRSAnswer.Close
%>
<%
RecSet.MoveNext
Wend
RecSet.Close
Set RecSet = Nothing
Set objRSAnswer = Nothing
%>