联合查询中一个比较隐藏的覆盖有关问题
联合查询中一个比较隐藏的覆盖问题,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