当前位置: 代码迷 >> Sql Server >> PL/SQL 转 SQL解决方法
  详细解决方案

PL/SQL 转 SQL解决方法

热度:89   发布时间:2016-04-24 10:12:37.0
PL/SQL 转 SQL
    
上面的就不贴出来了  
   FROM ni_contract_out_main OUT,
               ni_contract_loss     loss,
               ni_contract_item     item,
               ni_contract_in_main  m
         WHERE OUT.req_no =
               (SELECT MAX(c.req_no) --取最大文号 
                  FROM ni_contract c
                 WHERE c.contract_id = OUT.contract_id)
           AND OUT.req_no = loss.req_no(+)
           AND OUT.contract_id = loss.contract_id(+)
           AND OUT.item_no = loss.item_no_cp(+)
              
           AND loss.item_no = item.item_no(+)
              
           AND m.req_no(+) = loss.req_no
           AND m.contract_id(+) = loss.contract_id
           AND m.item_no(+) = loss.item_no


怎么把这些连接转换为SQL  
              
           AND OUT.contract_id = @contract_id
         ORDER BY out_xh_no, xh_no) a
------解决方案--------------------
是左右连接的写法问题吧
   FROM ni_contract_out_main OUT
        LEFT JOIN ni_contract_loss loss
               ON OUT.req_no = loss.req_no
              AND OUT.contract_id = loss.contract_id
              AND OUT.item_no = loss.item_no_cp
        LEFT JOIN ni_contract_item item
               ON loss.item_no = item.item_no
        LEFT JOIN ni_contract_in_main  m
               ON m.req_no = loss.req_no
              AND m.contract_id = loss.contract_id
              AND m.item_no = loss.item_no
         WHERE OUT.req_no =
               (SELECT MAX(c.req_no) --取最大文号 
                  FROM ni_contract c
                 WHERE c.contract_id = OUT.contract_id)
  相关解决方案