SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 1 ORDER BY lastArgueDate DESC union all
SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 10 ORDER BY lastArgueDate DESC union all 
SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 2 ORDER BY lastArgueDate DESC union all
 
SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 4 ORDER BY lastArgueDate DESC union all
 
SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 5 ORDER BY lastArgueDate DESC union all
 
SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 6 ORDER BY lastArgueDate DESC

解决方案 »

  1.   

    create view viewname as 
    begin 
    SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 1 ORDER BY lastArgueDate DESC union all
    SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 10 ORDER BY lastArgueDate DESC union all 
    SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 2 ORDER BY lastArgueDate DESC union all
     
    SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 4 ORDER BY lastArgueDate DESC union all
     
    SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 5 ORDER BY lastArgueDate DESC union all
     
    SELECT TOP 1 * FROM MessageBoardTb WHERE boardId = 6 ORDER BY lastArgueDate DESC
    end
      

  2.   

    表的結構要一樣﹐然后用union all 或union 連接起來
      

  3.   

    create view viewname
    as
    select m.*
    from MessageBoardTb m inner join (
       SELECT boardid,max(lastArgueDate) as lastArgueDate 
       FROM MessageBoardTb WHERE boardId in (1,2,4,5,6,10) 
       group by boardid ) x on m.boardid=x.boardid and m.lastArgueDate=x.lastArgueDate
      

  4.   

    说 是在union附近有语法错误是怎么回事情??
      

  5.   

    你用括號把(select......... )句子括起來
      

  6.   

    用UNION有错误是因为有多个 ORDER BY ,只能最后一个SELECT才能用ORDER BY
      

  7.   

    括起来也没有用,我要把每一个查询的lastArgueDate的最大的那条记录,
    如果是最后才有order by ,只能将这已经取出来的6条记录重新排列