【发布时间】:2020-02-20 08:39:13
【问题描述】:
您好,我是 sql 新手,我正在尝试解决此查询: 找出工资至少高于其部门平均工资 10% 的员工的注册号 (MATRICOLA) 和姓氏 (COGNOME)。
IMPIEGATO(employees)
DIPARTIMENTO(department)
SELECT *
from (
SELECT *
FROM IMPIEGATO imp1,
DIPARTIMENTO dip1
where imp1.dipartimento_codice_fk = dip1.codice
), (
SELECT dip.codice, 1.1*avg(imp.stipendio) AS "STIPENDIO_MEDIO_10"
FROM IMPIEGATO imp
JOIN DIPARTIMENTO dip ON dip.CODICE=imp.DIPARTIMENTO_CODICE_FK
GROUP BY dip.codice
)
我不能添加这个 where 条件来获得我需要的结果WHERE dip.codice=dip1.codice。
这是我得到的错误
ORA-00904: "DIP1"."CODICE": identificativo 无效
00904. 00000 - “%s:无效标识符”
*原因:
*行动:
Errore alla riga:255,结肠:18
【问题讨论】:
-
只有当我添加 where 条件时才会发生错误,我在加入时使用相同的点表示法调用了“CODICE”,顺便说一下,我也发布了 ddl
-
今日提示:始终使用现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读和维护,如果需要更容易转换为外连接!