SELECT * FROM ForumThreads WHERE id IN (SELECT DISTINCT TOP 5 CASE replyid WHEN 0 THEN id ELSE replyid END AS xid FROM forumthreads ORDER BY ForumThreads.id) slet ikke for at blande mig, men for at hjælpe måske...
SELECT * FROM ForumThreads WHERE id IN ( SELECT CASE replyid WHEN 0 THEN id ELSE replyid END AS xid FROM (SELECT DISTINCT TOP 5 replyid,id FROM forumthreads ORDER BY id DESC) x )
Som udgangspunkt vil det altid kunne svare sig at undgå for mange cases i et sql-udtræk, det vil som regel altid kunne løses på en bedre måde... Og til et simpelt udtræk som dit vil jeg foreslå flg.:
SELECT * FROM ForumThreads WHERE id in (select distinct top 5 coalesce(nullif(replyId, 0), Id) from ForumThreads order by id DESC ) ORDER By AnswerDate
Altså en simpel brug af coalesce... samme funktionalitet kunne opnås med en isnull, men coalesce er sjovere ;-)
SELECT * FROM ForumThreads WHERE id in (select distinct top 5 coalesce(nullif(replyId, 0), Id) from ForumThreads order by coalesce(nullif(replyId, 0), Id) DESC ) ORDER By AnswerDate
ja det giver mening...som jeg lige ser det så skal man lave en selfjoin på select distinct top 5 coalesce(nullif(replyId, 0), Id) from ForumThreads order by coalesce(nullif(replyId, 0), Id) DESC
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.