日期:2014-05-17  浏览次数:20703 次

急: 关于Oracle 连接问题!
最后一行     AND   nvl(e.available_qty(+),0)   >   0;这样写与
AND   nvl(e.available_qty,0)   >   0   这样有什么不同,结果有区别吗?

                    c.req_rep_no                             =   e.req_rep_no(+)
      c.req_no                                     =   e.req_no(+)
      c.req_seq                                   =   e.req_seq(+)
                    nvl(e.available_qty(+),0)   >   0;
这样是否相当于c   left   join   e   on(c.req_rep_no   =   e.req_rep_no   and
      c.req_no     =   e.req_no     and     c.req_seq   =   e.req_seq   and           e.available_qty   >   0)

下面的整个语句,如果   e   里没数据,只要其他表符合条件有相应数据,count(*)还是有可能> 0的。对吗?

SELECT   count(*)  
    INTO   :ll_cnt
    FROM   v_sal_order_qty   e,   tm_sal_req_rep   a,   tm_sal_req_mst   b,   tm_sal_req_dtl   c
  WHERE   a.com_code                                 =   b.com_code
    AND   a.req_rep_no                             =   b.req_rep_no
    AND   b.com_code                                 =   c.com_code
    AND   b.req_rep_no                             =   c.req_rep_no
    AND   b.req_no                                     =   c.req_no
    AND   c.req_rep_no                             =   e.req_rep_no(+)
    AND   c.req_no                                     =   e.req_no(+)
    AND   c.req_seq                                   =   e.req_seq(+)
    AND   b.com_code                                 =   :gs_com_code
    AND   b.div_code                                 =   :as_div_code  
    AND   b.cust_type                               =   :as_cust_type
    AND   b.cust_cd                                   =   :as_cust_cd