翻译值我有一个位置表SQL查询以检索输出
pos_table
与
position_code job_code location_code pos_name BUSINESS_UNIT
1 staff delhi supervisor XYZ
2 supervor manila technical associate ABC
mapping table
table_code source_code business_unit target_code
LOC DELHI XYZ 10
loc MANILA ABC 20
job staff XYZ 01
job supervisor ABC 02
我想它连接映射表,pos_table查询列,使得
为JOB_CODE人员映射表target_code的输出01应该来自 ,使用business_unit和source_code作为连接。
输出:
position_code job_code location_code pos_name BUSINESS_UNIT
1 01 10 supervisor XYZ
2 02 20 technical associate ABC
为了这个,我写的查询:
select POSITION_CODE,
coalesce(JOB_MAP.FUSION_HARMONIZED_CODE,JOB_CODE) JOB_CODE,
coalesce(LOC_MAP.FUSION_HARMONIZED_CODE,LOCATION_CODE)LOCATION_CODE
from pos_tab POS_STAG,
MAPPING_TAB LOC_MAP,
mapping_tab job_MAP
where 1=1
and JOB_MAP.source_code||business_unit_name = POS_STAG.JOB_CODE||business_unit_name
and LOC_MAP.TABLE_CODE ='LOC'
and job_map.table_code='JOB'
and LOC_MAP.source_code ||business_unit_name = POS_STAG.LOCATION_CODE||business_unit_name;
,但是这是行不通的,它是rerieving更多的行数
您显示的数据看起来很不一致;混合大小写映射表的table_code中,pos表的作业代码有'supervor'而不是'supervisor'。这是你的实际数据,还是你为这个问题做好了准备? –
@ AlexPoole-这是一个示例数据..请原谅打字错误 –
随着清理值您的查询获得两行,所以它真的不清楚是什么问题。请输入一些实际证明问题的实际数据,并显示您现在得到的结果以及您想要获取的数据。 –