SELECT ST_CODE.ST_NAME "CURRENT ST",
ST_CODE.ST_NAME "PREVIOUS ST" FROM FLT_TBL
LEFT JOIN MT_ST_CODE ON
FLT_TRN_TBL. PIS_DB_VER = MT_ST_CODE.VERSION AND
FLT_TRN_TBL. CRNT_ST_CODE = MT_ST_CODE.ST_CODE
LEFT JOIN MT_ST_CODE ON
FLT_TRN_TBL. PIS_DB_VER = MT_ST_CODE.VERSION AND
FLT_TRN_TBL. PREV_ST_CODE = MT_ST_CODE.ST_CODE
答案 0 :(得分:0)
有几个错误:
FLT_TRN_TBL
是未知别名ST_CODE
是未知别名MT_ST_CODE
赋予别名您的查询应如下所示:
SELECT M1.ST_NAME "CURRENT ST",
M2.ST_NAME "PREVIOUS ST"
FROM FLT_TBL FLT_TRN_TBL
LEFT JOIN MT_ST_CODE M1 ON
FLT_TRN_TBL.PIS_DB_VER = M1.VERSION AND
FLT_TRN_TBL.CRNT_ST_CODE = M1.ST_CODE
LEFT JOIN MT_ST_CODE M2 ON
FLT_TRN_TBL.PIS_DB_VER = M2.VERSION AND
FLT_TRN_TBL.PREV_ST_CODE = M2.ST_CODE
或者尝试使用分组依据,而不是如下所示的多个联接:
SELECT FLT_TRN_TBL.PIS_DB_VER
Max(case when FLT_TRN_TBL.CRNT_ST_CODE = MT_ST_CODE.ST_CODE then MT_ST_CODE.ST_NAME end) as "CURRENT ST",
Max(case when FLT_TRN_TBL.PREV_ST_CODE = MT_ST_CODE.ST_CODE then MT_ST_CODE.ST_NAME end) as "PREVIOUS ST"
FROM FLT_TBL FLT_TRN_TBL
LEFT JOIN MT_ST_CODE
ON FLT_TRN_TBL.PIS_DB_VER = MT_ST_CODE.VERSION
Group by FLT_TRN_TBL.PIS_DB_VER
干杯!