什么版本?
9i才支持left join语法。
之前的用(+)

解决方案 »

  1.   

    SSLTBL.TIMEST+'' TIMEST1
    这个是不是合并的,不能用+号吧!要用||才能进行字符串的合并
    SSLTBL.TIMEST||'' TIMEST1,不过这样没有太大的意义,不知道是不是这里有问题!
      

  2.   

    不是,我已经改成以下,还是不好用
    select TITLE,IMPLV,RTFL,RTCAT,RTNAME,STFL,CRTUSRID,TMPFL,NOWSTEP,
    SSLTBL.TIMEST as TIMEST1, 
    SSLTBL.HASHCD AS sslHash, 
    SSLTBL.DAIRIID AS sslDair, NOWUSRID, 
    USRTBL2.USRNAME AS SRUSRID2, 
    TO_CHAR(SSLTBL.TRKDATE,'yyyy-mm-dd hh:mi:ss') as mailTime,
    TO_CHAR(SSLTBL.KSNDATE,'yyyy-mm-dd hh:mi:ss') as KSNDATE,
    USRTBL.USRNAME as tempName  
    from SSLTBL  
    left join 
    (select  TIMEST, HASHCD, SRUSRID from RRLTBL R ,
    (select max(RRSTEP) as max1, TIMEST as TIMEST2, HASHCD as HASHCD2  from RRLTBL group by TIMEST2, HASHCD2) 
    as M  where M.TIMEST2 = R.TIMEST and M.HASHCD2 = R.HASHCD and M.max1 = R.RRSTEP) 
    as maxTbl
    on maxTbl.TIMEST = SSLTBL.TIMEST 
    and maxTbl.HASHCD = SSLTBL.HASHCD   
    left join 
    USRTBL 
    on USRTBL.USRID = SSLTBL.CRTUSRID 
    left join 
    USRTBL USRTBL2 
    on USRTBL2.USRID=maxTbl.SRUSRID  
    where (SSLTBL.DAIRIID='U002' or  NOWUSRID='U002') 
    and STFL<>0 and STFL<>4 and STFL<>5 and STFL<>6  
    order by KSNDATE desc
      

  3.   

    呵呵,你这个sql看起来太累了,不知道能不能简化一下,这个没有测试环境不太好找错误!