如何在查询中与工人及其经理一起编写查询
How to write a query with workers and their managers beside them in on query
我有 2 tables(在屏幕截图中 tables)。一名 table 员工与工人和经理,另一名(部门)与部门。我需要编写一个查询,其中包含 returns 员工的姓名、他们的直接经理的姓名、他们的部门名称和他们的薪水加上销售佣金 (COMM)。屏幕截图中的空单元格意味着NULL.also,对某些工人来说,他们没有经理!
我尝试使用 Union all 进行查询,但这是一个问题,因为行不同!。那应该怎么写呢?
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
table获取管理员姓名
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
我有 2 tables(在屏幕截图中 tables)。一名 table 员工与工人和经理,另一名(部门)与部门。我需要编写一个查询,其中包含 returns 员工的姓名、他们的直接经理的姓名、他们的部门名称和他们的薪水加上销售佣金 (COMM)。屏幕截图中的空单元格意味着NULL.also,对某些工人来说,他们没有经理!
我尝试使用 Union all 进行查询,但这是一个问题,因为行不同!。那应该怎么写呢?
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
table获取管理员姓名
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