2014-10-28 34 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