现有两张表A01和A02,A01里放1月份数据,A02放2月份数据,两表结构完全相同,字段III为关联字段,字段YYYY表示年份,字段MM表示月份,字段DD表示日,YMD字段表示年月日。
    现在我想从A01和A02中提取III的跨月份数据,如1月20日至2月10日的数据,请问SQL语句该怎么写?
    谢谢各位高手不吝赐教!

解决方案 »

  1.   

    用union  查询select * from A01 where DD>'20'
    union 
    select * from A02 where DD<'11'
      

  2.   

    谢谢前面2位高手。但如何使用III字段与2表关联?能否写得再详细一些?
      

  3.   

    III字段是什么,给点数据最好
      

  4.   

    III可以理解成ID号,所有表都有对应的III字段。
      

  5.   

    由于两个表的结构是完全相同的,现在使用union all进行连接,实际上就是将两个SQL语句执行的结果连接在一起,你可以这样写:select * from A01
       where to_char(YMD,'mm-dd') >= '01-20'
    union all
    select * from A02
       where to_char(YMD,'mm-dd') <= '02-10';这样就可以了
      

  6.   

    也就是说select出符合时间段并且III要符合一个值?这样? 
    select * from A01 where DD>'20' and III='值'
    union all
    select * from A02 where DD <'11' and III='值'
      

  7.   


    不是的,是要检索2表中III值相同的对应的数据。
      

  8.   

    没有描述清楚吧,“要检索2表中III值相同的对应的数据”什么意思啊