Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我无法从下面的语句中检索准确的数据_Sql_Oracle - Fatal编程技术网

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