Avatar billede bruhnsweb Nybegynder
10. januar 2004 - 16:10 Der er 6 kommentarer og
1 løsning

sql problemmer med order by

Hej Eksperter

jeg har et lille frækt script her, som jeg så venligt har haft jer til at hjælpe med.

Mit problem er at den sorterer forkert
----------------------------------------------
<%

SqlStr = "SELECT tblForum.hide, * FROM tblForum RIGHT JOIN tblTopic ON tblForum.forum_id = tblTopic.forum_ID WHERE (((tblTopic.Topic_ID) In (Select top 20 Topic_ID From tblThread order by Thread_ID DESC)) AND ((tblForum.hide)=False));"
Set rs = Conn.Execute(SqlStr)


rs.MoveFirst
do while not rs.eof

forumdate = rs("Last_entry_date")

Response.Write(replace(FormatDateTime(forumdate, 2),"-","."))
%>
<br>
<a href="forum_posts.asp?TID=<%=rs("Topic_ID")%>"><%=rs("subject")%></a><br><br>
<%
rs.movenext
loop
%>
----------------------------------------------

Lige nu sorterer den efter Thread_ID som den finder i tabellen tblThread. Istedet skal den sortere efter Last_entry_date som ligger i tblTopic..

Hjælp :o)
Avatar billede pfp Nybegynder
10. januar 2004 - 16:15 #1
Prøv med:

SqlStr = "SELECT tblForum.hide, * FROM tblForum RIGHT JOIN tblTopic ON tblForum.forum_id = tblTopic.forum_ID WHERE (((tblTopic.Topic_ID) In (Select top 20 Topic_ID From tblThread order by tblTopic.Last_entry_date DESC)) AND ((tblForum.hide)=False));"
Set rs = Conn.Execute(SqlStr)
Avatar billede erikjacobsen Ekspert
10. januar 2004 - 16:18 #2
Du skal vel også flytte din AND op i din WHERE. Den skal ikke stå i din ORDER BY
Avatar billede bruhnsweb Nybegynder
10. januar 2004 - 16:19 #3
Microsoft JET Database Engine error '80040e57'

The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.

forum_sites.inc, line 7


?????
Avatar billede pfp Nybegynder
10. januar 2004 - 16:19 #4
Ja det havde jeg da i hvert fald overset...ORDER BY skal stå sidst.
Avatar billede bruhnsweb Nybegynder
10. januar 2004 - 16:22 #5
SqlStr = "SELECT tblForum.hide, * FROM tblForum RIGHT JOIN tblTopic ON tblForum.forum_id = tblTopic.forum_ID WHERE (((tblTopic.Topic_ID) In (Select top 20 Topic_ID From tblThread)) AND ((tblForum.hide)=False)) order by tblTopic.Last_entry_date DESC;"
Set rs = Conn.Execute(SqlStr)

Sådan?
Avatar billede bruhnsweb Nybegynder
10. januar 2004 - 16:32 #6
Nu virker det :o)

Sådan her skal det skrives:

SqlStr = "SELECT tblForum.hide, * FROM tblForum RIGHT JOIN tblTopic ON tblForum.forum_id = tblTopic.forum_ID WHERE (((tblTopic.Topic_ID) In (Select top 20 Topic_ID From tblThread order by thread_ID DESC)) AND ((tblForum.hide)=False))order by tblTopic.Last_entry_date DESC;"
Set rs = Conn.Execute(SqlStr)

Skriv lige et svar - Dem der vil have point!
Avatar billede pfp Nybegynder
10. januar 2004 - 16:33 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester