如: JOB 表里有一个最后更新时间字段: LASTUPDDTTM , 另外一个表 PERS_DATA 中也有一个LASTUPDTTM ,两个表用同一个字段EMPLID 关联 ,SELECT * FROM JOB J,PERS_DATA  P WHERE P.EMPLID=J.EMPLID AND J.EMPLID='010804' ,现在想通过SQL语句 比较  两表中同一个EMPLID值所查询的  LASTUPDTTM 值,取出时间大的那个值
thanks , 在线等

解决方案 »

  1.   

    SELECT   decode(sign(LASTUPDDTTM-LASTUPDTTM),1,LASTUPDDTTM,LASTUPDTTM)     FROM   JOB   J,PERS_DATA     P   WHERE   P.EMPLID=J.EMPLID   AND   J.EMPLID= '010804 '
      

  2.   

    谢谢楼上,已经验证通过了
    没有想到用DECODE ,一直在用CASE 再试
      

  3.   

    SELECT J.EMPLID,
           case
             when max(J.LASTUPDTTM) - max(P.LASTUPDTTM) > 0 then
              max(J.LASTUPDTTM)
             else
              max(P.LASTUPDTTM)
           end as LASTUPDTTM
      FROM JOB J, PERS_DATA P
     WHERE P.EMPLID = J.EMPLID
       AND J.EMPLID = '010804'
      

  4.   

    刚少了一个groupSELECT J.EMPLID,
           case
             when max(J.LASTUPDTTM) - max(P.LASTUPDTTM) > 0 then
              max(J.LASTUPDTTM)
             else
              max(P.LASTUPDTTM)
           end as LASTUPDTTM
      FROM JOB J, PERS_DATA P
     WHERE P.EMPLID = J.EMPLID
       AND J.EMPLID = '010804'
    group by J.EMPLID
      

  5.   

    呵呵,case也可以的,反正就是条件判断嘛。你可以参考楼上的