Jag håller på att designa ett forum. Forumet i sig fungerar bra. Nu har jag dock ett litet litet problem med en SQL-sats.
I forumet skriver man in nya inlägg var på de sorteras i den ordning de blev inlagda. Nu vill jag göra så att när en tråd har fått ett nytt svar så hamnar den högst upp i listan för att visa användaren att det är den tråd som har fått ett svar senast, lite som webforum tror jag.
Så här ser SQL-satsen ut...
SqlListThread = "SELECT * FROM t_threads WHERE FORUMID = " & request.querystring("xforumID") & " AND ANSWERID=0 ORDER BY THREADID DESC"
När en post i t_threads har fältet ANSWERID=0 indikerar det att det är en huvudtråd. Är det ett svar på en huvudtråd har ANSWERID det threadID huvudtråden har.
Jag vill sortera en tråd efter vilket forum det tillhör samt det svar tillhörande aktuell tråd som är inlagt senast. Tillräckligt luddigt? Om det är något som behöver vidarutvecklas så gör jag gärna det
Tabellen ser ut så här...
Threads
============
ID
ThreadID
ForumID
Subject
Author
NumberOfAnswer
AnswerID
Date
Hits
Content
Får ett felmeddelande när jag kör SQL-satsen (error '80004005' ). Så här ser den ut i min kod.
SqlListThread = "select subject, author, date, coalesce((select max(date) from t_threads where answerid = t.threadid),date) as orderDate from t_threads torder by orderDate desc"
skriver jag "," mellan de kolumner jag vill ha u i recordsetet?
får nu följande felmeddelande...
Microsoft JET Database Engine error '80040e14'
Syntax error. in query expression 'nvl((select max([date] from t_threads where answerid = t.threadid) ,[date]) , author, date, subject from t_threads t order by 1 desc'.
Hej brorsan.
Jepp, det ska vara t order - med mellanrum. Det det egentligen står är:
"from t_threads as t"
t är bara ett substitut för t_threads - t.ex. t.threadid skulle lika gärna kunna skrivas t_threads.threadid. Men! Genom att göra som LarsG föreslår så skapar man ett alias (t) för tabellen (t_threads).
SQL-sats: select nvl((select max([date] from t_threads where answerid = t.threadid) ,[date])) , author date subject from t_threads t order by 1 desc
Microsoft JET Database Engine error '80040e14'
Syntax error. in query expression 'nvl((select max([date] from t_threads where answerid = t.threadid) ,[date]))'.
SQL-sats: select nvl(select max([date] from t_threads where answerid = t.threadid) ,[date]) , author from t_threads t order by 1 desc
Microsoft JET Database Engine error '80040e14'
Syntax error. in query expression 'nvl(select max([date] from t_threads where answerid = t.threadid) ,[date])'.
Nu använder jag denna kod men får fortfarande upp samma felmeddelande. Jag förstår inte vad som är felet...
SqlListThread = "SELECT nz((select max([ThreadPosted] from t_threads where answerid = t.threadid) ,[ThreadPosted]) ,author, subject from t_threads t order by 1 desc"
266 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91