【发布时间】:2015-12-18 04:19:21
【问题描述】:
我在 Mysql 数据库中有 2 个表: 一种是Employee表,用于存储员工详细信息:employee
emp_id name
1 ABC
2 XYZ
3 EFG
第二个是月工资:工资
wage_id emp_id month year wage paid
1 1 11 2015 2000 2000
2 2 11 2015 1000 1000
3 3 11 2015 1500 1700
4 1 12 2015 2000 2000
5 3 12 2015 1500 0
我必须过滤那些没有输入当月工资或工资低于或高于工资的员工。例如。
当月=11 时
Name Wage Paid
EFG 1500 1700
当 Month=12 时
Name Wage Paid
XYZ 0 0
EFG 1500 0
我尝试了几件事,但无法获得所需的输出。
Select employee.emp_id,
employee.name,
wages.emp_id,
wages.wage_id,
wages.wage,
wages.paid
From employee
Join wages On employee.emp_id = wages.emp_id
Where wages.month = 11
And wages.year = 2015
And wages.wage <> wages.paid
和
Select wages.wage,
wages.paid,
wages.emp_id,
employee.emp_id
From wages
Join employee On wages.emp_id = employee.emp_id
Where wages.month = 11
And wages.year = 2015
And wages.wage <> wages.paid
请提出更改建议。
【问题讨论】:
-
仅适用于低于或高于您已尝试正确的工资,但我认为对于未在工资表中输入的人,您应该使用 union all 条款。
-
顺便说一句。您应该使用唯一的命名约定,使用雇员和工资,或雇员和工资作为表名