在SQL中如何按部门分组显示sal为空,部门缺少部门的成绩

时间:2018-06-30 11:52:21

标签: sql

select e.deptno,s.grade,sum(sal)
from emp e ,  salgrade s
where (e.sal between s.losal and s.hisal)

 group by e.deptno,s.grade
 order by e.deptno,s.grade;

我无法在查询中显示缺少成绩的0工资

1 个答案:

答案 0 :(得分:1)

从不FROM子句中使用逗号。 始终使用正确的,明确的,标准 JOIN语法。

您想要一个LEFT JOIN。假设您拥有所有部门的表:

select d.deptno, s.grade, sum(e.sal)
from departments d left join
     emp e
     on e.deptno = d.deptno left join
     salgrade s
     on e.sal between s.losal and s.hisal
group by d.deptno, s.grade
order by d.deptno, s.grade;