联合查询中一个比较隐藏的覆盖问题

联合查询中一个比较隐藏的覆盖问题,select中有同名的字段,只会取前面的,所以你需要取后面的应该给后面一个别名

    如下:t中有NEW_PRICE(空),所以取t4中的NEW_PRICE(有值),这时后面的这个不取别名会直接取前面空的

       select t.*,

       t1.*,

       FC_GET_SPZL(t1.P201, 'CN') spzl_cn,

       FC_GET_SPZL(t1.P201, 'CN') spzl,

       FC_GET_SPZL(t1.P201, 'EN') spzl_en,

       FC_GET_NUMUINT_EN(t.NUM_UNIT) NUM_UNIT_EN,

       FC_GET_NUMUINT_CN(t.NUM_UNIT) NUM_UNIT_CN,

       FC_GET_NUMUINT_EN(t.PRICE_UNIT2) PRICE_UNIT2_EN,

       FC_GET_NUMUINT_CN(t.PRICE_UNIT2) PRICE_UNIT2_CN,

       FC_GET_WARE_JGSY(t.obj_ware_key) JGSY_CN,

       FC_GET_WARE_JGSY(t.obj_ware_key) JGSY,

       FC_GET_WARE_JGSY_EN(t.obj_ware_key) JGSY_EN,

       t3.WAREKIND_NAME,

       t2.WARE_NAME,

       t4.NEW_NUM,

       t4.NEW_PRICE  NEW_PRICE1,

       t4.OBJ_WARE_KEY

       from tb_con_obj_ware t,

          (select * from tb_data_all where linktype = 'B1') t1,

          tb_bas_bed t2,

          tb_bas_bed_srt t3,

          (select t.OBJ_WARE_KEY, NEW_NUM, NEW_PRICE

          from TB_CON_ORD_PRICE_DTL t,

          (select max(ord_key) ord_key, max(ordprice_no) ordprice_no 

          from tb_con_ord_price

          where is_newprice = 'Y'

          and ORDPRICE_MAN = 'B'

          and ord_key in (select ord_key

             from tb_con_ord

             where 1=1   AND conobj_key = '6107'

   and customer_key='545'

     and ORDER_STATUS = 'A')) t2

             where t.ord_key = t2.ord_key

             and t.ORDPRICE_NO = t2.ORDPRICE_NO) t4

             where t.obj_ware_key = t1.linkkey

             and t.warekind_key = t3.warekind_key

             and t.ware_key = t2.ware_key

             and t.conobj_key = '6107'

    and t.obj_ware_key = t4.OBJ_WARE_KEY(+)

             order by t.obj_ware_key

猜你喜欢

转载自yuhuiblog6338999322098842.iteye.com/blog/2336894