我正在为蟾蜍设计oracle,并编写了此SQL查询,但它给出了一个 错误:
[错误]执行(65:3):ORA-00918:列定义不明确
下面是我尝试给别名提供别名以区分列的SQL查询。
select HR.EMPLOYEES.FIRST_NAME||' '||HR.EMPLOYEES.LAST_NAME AS
Full_Name,HR.EMPLOYEES.SALARY as sal,HR.EMPLOYEES.JOB_ID as ji,
HR.EMPLOYEES.COMMISSION_PCT as cmpct,HR.EMPLOYEES.MANAGER_ID as
mgid,HR.EMPLOYEES.DEPARTMENT_ID as dep,HR.DW_COUNTRIES.C_ID as
country,HR.DW_REGION.R_ID as region,
HR.LOCATIONS.LOCATION_ID as loc
from HR.EMPLOYEES
join HR.DEPARTMENTS ON
HR.EMPLOYEES.DEPARTMENT_ID=HR.DEPARTMENTS.DEPARTMENT_ID
join HR.DEPARTMENTS ON HR.DEPARTMENTS.LOCATION_ID=HR.LOCATIONS.LOCATION_ID
join HR.LOCATIONS ON HR.LOCATIONS.COUNTRY_ID=HR.DW_COUNTRIES.C_ID
join HR.DW_COUNTRIES ON HR.DW_COUNTRIES.R_ID=HR.DW_REGION.R_ID
where HR.DW_COUNTRIES.C_ID='US'
AND HR.EMPLOYEES.HIRE_DATE BETWEEN TO_DATE('16/08/2002','DD/MM/YYYY') AND
TO_DATE('07/12/2007','DD/MM/YYYY')
AND HR.DW_REGION.R_ID=2
AND HR.LOCATIONS.LOCATION_ID=1700
AND HR.EMPLOYEES.DEPARTMENT_ID=90
答案 0 :(得分:0)
您在查询中两次使用了HR.DEPARTMENTS表,这是问题的根源。您绝对确定必须两次加入此表吗?您也有一些不清楚的联接。我修复了它们,但未测试查询。
select HR.EMPLOYEES.FIRST_NAME||' '||HR.EMPLOYEES.LAST_NAME AS
Full_Name,HR.EMPLOYEES.SALARY as sal,HR.EMPLOYEES.JOB_ID as ji,
HR.EMPLOYEES.COMMISSION_PCT as cmpct,HR.EMPLOYEES.MANAGER_ID as
mgid,HR.EMPLOYEES.DEPARTMENT_ID as dep,HR.DW_COUNTRIES.C_ID as
country,HR.DW_REGION.R_ID as region,
HR.LOCATIONS.LOCATION_ID as loc
from HR.EMPLOYEES
join HR.DEPARTMENTS ON
HR.EMPLOYEES.DEPARTMENT_ID=HR.DEPARTMENTS.DEPARTMENT_ID
join HR.LOCATIONS ON HR.DEPARTMENTS.LOCATION_ID=HR.LOCATIONS.LOCATION_ID
join HR.DW_COUNTRIES ON HR.LOCATIONS.COUNTRY_ID=HR.DW_COUNTRIES.C_ID
join HR.DW_REGION ON HR.DW_COUNTRIES.R_ID=HR.DW_REGION.R_ID
where HR.DW_COUNTRIES.C_ID='US'
AND HR.EMPLOYEES.HIRE_DATE BETWEEN TO_DATE('16/08/2002','DD/MM/YYYY') AND
TO_DATE('07/12/2007','DD/MM/YYYY')
AND HR.DW_REGION.R_ID=2
AND HR.LOCATIONS.LOCATION_ID=1700
AND HR.EMPLOYEES.DEPARTMENT_ID=90