我有2个表(在截图表)。一张桌子上有员工,也有工人,也有经理,另一张桌子上有部门。我还需要编写一个查询,它返回员工的姓名、直接经理的姓名、部门的名称以及工资和销售佣金(COMM)。屏幕截图中的空单元格表示NULL。此外,对一些工人来说,他们没有经理!
我试图做查询与联合所有,但这是一个问题,因为行是不同的!我该怎么写呢?
select e.ename, d.name, sum (case when e.comm<>null then 1 else 0+ case when e.sal<>null then 1 else 0 end)as sum_total
from emp as e
left join dept as d on e.deptno=d.deptno
where e.job<>"Manager"
Union ALL
select e.ename
from emp as e
left join dept as d on e.deptno=d.deptno
where e.job="Manager"
提前谢谢你
您可以自连接emp
表以获取管理人员的名称
select e.ename,
d.name,
coalesce(e.sal, 0) + coalesce(e.comm, 0) as salary,
m.ename as manager
from emp e
join dept as d on e.deptno = d.deptno
left join emp m on m.empno = e.mgr