现在我有三张表,A,B,C 
我需要通过A,B两个表的时间字段进行对比。 
如果A,B两个表的时间字段的月份数相隔3个月或以内的话,就更新C表的某一条记录。 
这个需求的sql应该怎么写呢? 希望高手可以帮助一下 

解决方案 »

  1.   

    update c
       set c.value = (select a.value
                        from a, b
                       where a.id = b.id
                         and abs(months_between(a.datetime - b.datetime)) < 3
                         and a.id = c.id)
     where exists (select 1
              from a, b
             where a.id = b.id
               and abs(months_between(a.datetime - b.datetime)) < 3
               and a.id = c.id)
      

  2.   

    MERGE INTO TAB1 T1 
    USING TAB2 T2
    ON T1.ID = T2.ID 
    WHEN MATCHDE ABS(MONTHS_BETWEEN(DT1,DT2))<=3
    UPDATE TAB3