T1CCN,ORDATE,NUM
C,2013-01-05,12
C,2013-01-25,14
C,2013-02-03,21
......
T2
YEAR,BEGIN,P1,P2
2013,2013-01-01,2013-01-26,2013-02-20
......如果T1.ORDATE的时间在T2的BEGIN到P1,那后面加一个字段P1,如果是在P1到P2之间值就是P2CCN,ORDATE,NUM,PER
C,2013-01-05,12,P1
C,2013-01-25,14,P1
C,2013-02-03,21,P2

解决方案 »

  1.   

    t2表中的 YEAR =2013  的会有多条记录 还是只有1条记录?
      

  2.   

    T2
    每年只有一条记录因为以前系统是按月分析数据的,但是有些时候是不是按月而是按一段时间,比如P1周期是从2013年1月1日开始到1月26日   1-27到2月的某个日期就是P2周期了。
      

  3.   

    我没有建表测试,不知道有没有问题:
    select t1.*,
           case
             when t1.ORDATE between t2.BEGIN and t2.p1 then
              'P1'
             when t1.ORDATE between t2.p1 and t2.p2 then
              'P2'
           end
      from t1, t2
     where to_char(t1.ORDATE, 'yyyy') = t2.year