2016-05-11 30 views
1

下面是被投擲錯誤的查詢:在在內部作爲重複表名(csuser.t2)FROM子句加入表重複名稱(csuser.t2)在FROM子句中內部聯接

SELECT t1.rxno, 
     t1.txno, 
     t2.create_datetime FROM mrgrxtxt t1,rx t2 
    INNER JOIN  (
     SELECT rxno, 
       t1. MIN(txno) AS min_txno, 
       t2. MAX(create_datetime) AS latest_txno 
     FROM mrgrxtxt t1 , rx t2 
     GROUP BY 1 
    ) t2 ON t1.rxno = t2.rxno WHERE t2.min_txno > 8 
     AND t2.create_datetime = t2.latest_txno; 

任何人可以幫忙嗎?這是informix DB。

+0

強烈建議不要試圖將舊式'FROM table1,table2'符號與顯式連接符號'FROM table1 JOIN table2 ON ...'混合使用。 –

回答

1

您已經爲rx定義了兩個別名,t2爲子查詢定義了另一個別名。嘗試將第二個t2更改爲t3之類的其他內容。

SELECT t1.rxno, 
     t1.txno, 
     t2.create_datetime 
    FROM mrgrxtxt t1 
    JOIN rx t2 ON t1.rxno = t2.rxno 
    INNER JOIN(
     SELECT rxno, 
       t1. MIN(txno) AS min_txno, 
       t2. MAX(create_datetime) AS latest_txno 
     FROM mrgrxtxt t1 
     JOIN rx t2 ON t1.rxno = t2.rxno 
     GROUP BY 1 
    ) t3 ON t1.rxno = t3.rxno 
    WHERE t3.min_txno > 8 AND t2.create_datetime = t3.latest_txno; 
+0

ON子句具有無效的表引用。現在是錯誤 – appi

+0

請嘗試編輯之一。這可能是因爲隱式連接。 – Ramin

+0

感謝Ramin的建議 – appi