SELECT * FROM H_et H WHERE (SELECT COUNT(1) FROM H_et A_date >= H.A_date) <= 6
UNION ALL
SELECT TOP 6 * FROM D_et D WHERE (SELECT COUNT(1) FROM D_et A_date >= D.A_date) <= 6
ORDER BY A_date

解决方案 »

  1.   

    不用top 6
    SELECT * FROM H_et H WHERE (SELECT COUNT(1) FROM H_et A_date >= H.A_date) <= 6
    UNION ALL
    SELECT * FROM D_et D WHERE (SELECT COUNT(1) FROM D_et A_date >= D.A_date) <= 6
    ORDER BY A_date
      

  2.   

    select *
    from (select * from A--A、B表的列数与类型的排序要一至
    union all
    select from B)ta order by 定义合并表ta的列就行了
      

  3.   

    SELECT * FROM H_et H WHERE (SELECT COUNT(1) FROM H_et A_date >= H.A_date) <= 6
    UNION ALL
    SELECT * FROM D_et D WHERE (SELECT COUNT(1) FROM D_et A_date >= D.A_date) <= 6
    ORDER BY A_date提示"第 1 行: '>' 附近有语法错误。 "
      

  4.   

    H_et表有字段ID,Name,A_date
    D_et表有字段ID,Name,A_dateselect top 6 * from 
    (
      select * from h_et
      union all
      select * from d_et
    ) t
    order by a_date desc