【发布时间】:2021-12-11 18:40:46
【问题描述】:
我有 2 张桌子(在屏幕截图中 tables)。一张桌子的员工还有工人和经理,另一张(部门)和部门。我需要编写一个查询,返回员工姓名、直接经理姓名、部门名称和工资以及销售佣金 (COMM)。屏幕截图中的空单元格表示 NULL。另外,对于一些工人来说,他们没有经理!
我尝试使用 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"
提前谢谢你
【问题讨论】:
-
在第二次选择中添加 NULL。
-
缺少 GROUP BY。
标签: mysql sql join subquery aggregation