2014-10-28 37 views
-1

我目前的工作,並定義爲一個查詢:添加另一個SELECT子句中多加入Oracle查詢

SELECT LIST_OF_SITES.SITE, 
    TO_CHAR(SITE_VISIT.DATE_ - LIST_OF_ISLANDS.TIMEZONE/24, 'DD-MON-YY HH24:MI') DATE_, 
    LIST_OF_SITES.LATITUDE, 
    LIST_OF_SITES.LONGITUDE, 
    LIST_OF_SITES.REEF_ZONE, 
    LIST_OF_SITES.DEPTH_BIN 
    FROM GISDAT.LIST_OF_SITES 
LEFT JOIN GISDAT.SITE_VISIT 
ON LIST_OF_SITES.SITE = SITE_VISIT.SITE 
INNER JOIN GISDAT.LIST_OF_ISLANDS 
ON LIST_OF_ISLANDS.ISLAND = LIST_OF_SITES.ISLAND WHERE LIST_OF_SITES.SITE = 'TUT-229'; 

所有我要補充的是,選擇SITE_VISIT.HABITAT_CODE但 如果我添加其他SELECT子句它右邊的LIST_OF_SITES.DEPTH_BIN後,它會產生一個錯誤說:

ORA-00904: "SITE_VISIT"."HABITAT_CODE": invalid identifier. 

可能有幫助的其他一些信息,我可以訪問所有表中提到, 並且還有一個名爲LIST_OF_HABITATS的表格以及HABITAT_CODE列,我不確定是否需要以某種方式與SITE_VISIT.HABITAT_COD E連接才能使其工作。

+1

你確實添加了逗號不是嗎? Ps我建議你發佈你的問題陳述(不是有效的)和表格定義,以獲得更有效的幫助。 – GilesDMiddleton 2014-10-29 00:02:26

回答

0
 
SELECT LIST_OF_SITES.SITE, 
    TO_CHAR(SITE_VISIT.DATE_ - LIST_OF_ISLANDS.TIMEZONE/24, 'DD-MON-YY HH24:MI') DATE_, 
    LIST_OF_SITES.LATITUDE, 
    LIST_OF_SITES.LONGITUDE, 
    LIST_OF_SITES.REEF_ZONE, 
    LIST_OF_SITES.DEPTH_BIN, -- added a comma here 
SITE_VISIT.HABITAT_CODE -- added habitat_code 
    FROM GISDAT.LIST_OF_SITES 
LEFT JOIN GISDAT.SITE_VISIT 
ON LIST_OF_SITES.SITE = SITE_VISIT.SITE 
INNER JOIN GISDAT.LIST_OF_ISLANDS 
ON LIST_OF_ISLANDS.ISLAND = LIST_OF_SITES.ISLAND 
WHERE LIST_OF_SITES.SITE = 'TUT-229'; 

如果仍然拋出ORA-00904 invalid identifier錯誤,那麼可以肯定的SITE_VISIT沒有HABITAT_CODE列。

在這種情況下,您需要加入適當的表格,然後投影該表格的列。

+0

對不起,你是對的。該列僅存在於生產端而不是用於開發。感謝您的迴應! – DeveloperBryson 2014-10-30 20:26:06