Select a.title as 主题,b.userid as 最后回应人,
       IsNULL(b.createtime,a.createtime) as 最后回应时间 
 from tb_forum as a left Join tb_forum_reply b on a.id=b.tb_forum_id
 where not exists(Select * from tb_forum_reply where id=a.id and
                   Createtime>b.Createtime)
order by 最后回应时间 desc

解决方案 »

  1.   

    select 
    id,
    title,
    userid,
    case (Select max(createtime) from tb_fornum_reply where id=tb_forum_id)
    when is null then createtime
    else (Select max(createtime) from tb_fornum_reply where id=tb_forum_id)
    end as 最后时间
    from tb_fornum
      

  2.   

    http://community.csdn.net/Expert/topic/4941/4941041.xml?temp=.4641535
      

  3.   

    CREATE TABLE TB_FORUM(ID INT,TITLE VARCHAR(50),USERID INT,CREATETIME DATETIME)
    INSERT TB_FORUM SELECT 1,'AA',1,'2005-6-9'
    UNION ALL SELECT 2,'BB',2,'2005-9-8'
    UNION ALL SELECT 3,'CCC',2,'2005-9-8' --该贴无人回
    GO
    CREATE TABLE tb_forum_reply(ID INT,tb_forum_id INT,title VARCHAR(10),userid INT,CREATETIME DATETIME)
    INSERT tb_forum_reply SELECT 1,1,'ABC',3,'2005-6-10'
    UNION ALL SELECT 2,2,'BBD',4,'2005-9-9'SELECT 
    '主题'=A.TITLE ,
    '最后时间'= ISNULL((SELECT TOP 1 CREATETIME FROM tb_forum_reply B WHERE TB_FORUM_ID=A.ID ORDER BY 1 DESC),A.CREATETIME)                  
    FROM TB_FORUM A