老师,请帮我看看这道题目~
#外链接练习3: 查询每名员工的编号、姓名、部门、月薪、工资等级、上司编号、上司姓名、上司部门? SELECT e.empno, e.ename, d.dname, e.sal+ IFNULL(e.comm,0), t.empno AS mgrno, t.ename AS mname, t.deptno AS mdnane FROM t_emp e LEFT JOIN t_dept d ON e.deptno = d.deptno LEFT JOIN (SELECT e1.empno, e1.ename, d1.dname FROM t_emp e1 JOIN t_dept d1 ON e1.deptno = d1.deptno) t ON e.mgrno = t.deptno 请问这个哪里出错了啊?这个工资等级怎么求呢?
25
收起
正在回答 回答被采纳积分+1
2回答
好帮手慕小小
2021-11-22 14:34:44
同学你好,sql运行后的报错如下:
1)上述sql运行的报错信息如下,表示:字段列表”中存在未知列“t.deptno”。这是由于查询出的中间表中不存在此列导致的,建议添加。
参考代码如下:
2)但上述代码运行后仍失败,提示结果如下,表示:on子句中存在未知列“e.mgrno”,条件应是e.mgr=t.empno
参考代码如下:
求工资等级可参考如下sql实现需求:
-- 查询每名员工的编号、姓名、部门、月薪、工资等级、工龄、上司编号、上司姓名、上司部门 SELECT e.empno,e.ename,d.dname, e.sal+IFNULL (e.comm,0),s.grade, FLOOR(DATEDIFF(NOW(),e.hiredate)/365), t.empno AS mgrno,t.ename AS mname ,t.dname AS mdname FROM t_emp e LEFT JOIN t_dept d ON e.deptno=d.deptno LEFT JOIN t_salgrade s ON e.sal BETWEEN s.losal AND s.hisal LEFT JOIN (SELECT e1.empno,e1.ename,d1.dname FROM t_emp e1 JOIN t_dept d1 ON e1.deptno=d1.deptno) t ON e.mgr=t.empno;
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星