查询每个部门提成的总额,没有提成的(为NULL的)人先补发50,按照部门编号降序排序.
时间: 2024-02-18 11:02:14 浏览: 20
好的,这是一个查询语句的问题,以下是我的回答:
```
SELECT deptno, IFNULL(SUM(comm), 50*COUNT(*)) AS total_comm
FROM emp
GROUP BY deptno
ORDER BY deptno DESC;
```
这条 SQL 查询语句会返回每个部门的编号和提成的总额,如果某个员工没有提成(comm 为 NULL),就会按照题目要求补发50元,然后再计算总额。最后,结果按照部门编号进行降序排序。
希望我的回答能够帮到你!如果你还有其他问题,可以继续提出。
相关问题
mysql中查询每个部门提成的总额,没有提成的(为NULL的)人先补发50,按照部门编号降序排序.
可以使用以下 SQL 语句实现:
```
SELECT department_id, IFNULL(SUM(commission), 50*COUNT(*)) AS total_commission
FROM employees
GROUP BY department_id
ORDER BY department_id DESC;
```
解析:
- 使用 `SELECT` 语句查询部门编号和提成总额。
- `IFNULL` 函数用于判断提成总额是否为 NULL,如果是 NULL,则表示该部门没有提成的人,将其补发 50 元,即使用 `COUNT(*)` 函数统计该部门员工总数,并乘以 50。
- 使用 `SUM` 函数计算每个部门的提成总额。
- 使用 `GROUP BY` 语句将结果按照部门编号分组。
- 使用 `ORDER BY` 语句将结果按照部门编号降序排序。
查询每个部门的工资总和,只查询有领导的员工,并且要求工资总和大于5400.
假设我们要查询的表名为`employee`,包含字段`dept`、`salary`和`manager`,其中`dept`表示部门名称,`salary`表示工资,`manager`表示领导编号。查询每个部门的工资总和可以使用如下SQL语句:
```
SELECT dept, SUM(salary) as total_salary
FROM employee
WHERE manager IS NOT NULL
GROUP BY dept
HAVING SUM(salary) > 5400;
```
其中,`WHERE`语句过滤掉没有领导的员工,`GROUP BY`语句按照`dept`字段分组,`SUM()`函数计算每组的工资总和。`HAVING`语句过滤掉工资总和小于等于5400的部门。最终返回每个部门的工资总和。