Sql 我无法从下面的语句中检索准确的数据
错误很少:Sql 我无法从下面的语句中检索准确的数据,sql,oracle,Sql,Oracle,错误很少: FLT\u TRN\u TBL是未知别名 ST_code是未知别名 您必须为MT\u ST\u code 您的查询应如下所示: 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\u TRN\u TBL
是未知别名ST_code
- 您必须为
MT\u ST\u code
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
或者尝试使用group by而不是多个联接,如下所示:
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
干杯 那很好。毫无疑问,你知道你想要什么回报。你知道你的数据是什么样子的。但是,阅读问题的人没有这些信息。您无法检索哪些数据(以及您可以检索哪些数据)?我可以检索两列的相同数据,但我需要它,每行两列的两个单独数据(当前和私有数据不应相同)@Timbiegeleiseni是否正在运行查询?我认为此查询将抛出错误,因为查询不知道别名。请阅读,然后回答相应的问题。
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