mysql> SELECT 姓名 FROM 雇员表,工资表 -> WHERE 基本工资 > ALL (SELECT 基本工资 FROM 雇员表 WHERE 所在部门编号 = (SELECT 部门编号 FROM 部门表 WHERE 部门名称 = '销售部'))grop by 雇员表.姓名; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'grop by 雇员表.姓名' at line 2
时间: 2023-10-16 20:49:09 浏览: 77
在你的查询中出现了一个语法错误。正确的键字是'group by',而不是'grop by'。请修正你的查询并使用正确的关键字。以下是修正后的查询语句:
```sql
SELECT 姓名
FROM 雇员表,工资表
WHERE 基本工资 > ALL (SELECT 基本工资 FROM 雇员表 WHERE 所在部门编号 = (SELECT 部门编号 FROM 部门表 WHERE 部门名称 = '销售部'))
GROUP BY 雇员表.姓名;
```
相关问题
编写一个存储过程,计算指定雇员工资的应缴税金。(使用参数传递雇员编号) >20000部分,税率为20%; >10000部分,税率10%; >5000部分,税率为5%
好的,以下是我为您编写的存储过程:
```mysql
CREATE PROCEDURE CalculateTax(IN empID INT)
BEGIN
DECLARE gross_salary FLOAT;
DECLARE tax_amount FLOAT;
SELECT salary INTO gross_salary FROM employees WHERE employee_id = empID;
IF gross_salary > 20000 THEN
SET tax_amount = (gross_salary - 20000) * 0.2 + 8000;
ELSEIF gross_salary > 10000 THEN
SET tax_amount = (gross_salary - 10000) * 0.1 + 3000;
ELSEIF gross_salary > 5000 THEN
SET tax_amount = (gross_salary - 5000) * 0.05;
ELSE
SET tax_amount = 0;
END IF;
SELECT tax_amount AS 'Tax Amount' FROM employees WHERE employee_id = empID;
END
```
这个存储过程接收一个参数,即雇员的编号,然后从 `employees` 表中查询该雇员的工资。接下来,根据工资的不同段落,计算应缴的税金。最后,将计算出的税金返回给用户。请注意,这个存储过程假设您的雇员工资已经保存在了名为 `employees` 的表中,其中包含了 `employee_id` 和 `salary` 两个字段。
您可以通过以下方式调用这个存储过程:
```mysql
CALL CalculateTax(1234);
```
其中,`1234` 是您要查询的雇员的编号。
阅读全文