2012-07-16 48 views
0

JOIN我有一個甲骨文命令「缺少右括號」錯誤,而使用子查詢有內甲骨文

Select offers.OFR_STAT,OFFER_DETAILS.*,PrevData.* 
From offers 
INNER JOIN OFFER_DETAILS 
    ON OFFER_DETAILS.OFFER_ID=offers.OFFER_ID 
INNER JOIN (
    SELECT InnerOfrDtl.* 
    FROM OFFER_DETAILS as InnerOfrDtl 
    WHERE InnerOfrDtl.offer_id=offers.offer_id 
) AS PrevData 
    ON PrevData.SCHEDULE_TYPE=OFFER_DETAILS.SCHEDULE_TYPE 

在運行我得到一個錯誤消息「缺少右括號」。 在這裏,我想使用內部連接的子查詢。

+0

爲什麼要使用子查詢?顯示的查詢無需子查詢即可正常工作。 – 2012-07-16 07:05:39

回答

1

嘗試在右括號之後和PrevData之前刪除AS。據我瞭解,Oracle不允許關鍵字AS用於表別名。


該查詢不需要子查詢。你可以這樣寫:

SELECT o.OFR_STAT, d.*, p.* 
    FROM offers o 
    JOIN Offer_Details d ON d.Offer_ID = o.Offer_ID 
    JOIN Offer_Details p 
    ON p.Offer_ID = o.Offer_ID 
    AND p.Schedule_Type = d.Schedule_Type 

我並不完全相信查詢是有道理的,但這完全是另一回事。

+0

刪除AS後給出相同的錯誤.... – Nirdesh 2012-07-16 07:02:46

0

的子查詢中刪除AS關鍵字,這是Oracle不支持:

Select offers.OFR_STAT,OFFER_DETAILS.*,PrevData.* 
From offers 
INNER JOIN OFFER_DETAILS 
    ON OFFER_DETAILS.OFFER_ID=offers.OFFER_ID 
INNER JOIN (
    SELECT InnerOfrDtl.* 
    FROM OFFER_DETAILS as InnerOfrDtl 
    WHERE InnerOfrDtl.offer_id=offers.offer_id 
) PrevData -- <<<< here is the change 
    ON PrevData.SCHEDULE_TYPE=OFFER_DETAILS.SCHEDULE_TYPE