表: 雇员表
+----------+--------------+ | 字段名称 | 类型 | +----------+--------------+ | 雇员编号 | int | | 出生日期 | date(255) | | 名 | varchar(512) | | 姓 | varchar(512) | | 性别 | varchar(512) | | 雇用日期 | date(255) | +----------+--------------+ 雇员编号 是该表的主键。 该表的每一行表示 每一个员工的信息,包含员工的姓名、雇用日期、性别、年龄等信息。
表: 雇员奖金表
+----------+--------------+ | 字段名称 | 类型 | +----------+--------------+ | 雇员编号 | int | | 接收日期 | date(255) | | 奖金类型 | varchar(512) | +----------+--------------+ 雇员编号 是该表的主键。 雇员编号 是 “雇员表” 表中 雇员编号 的外键。 该表的每一行表示 给员工发放奖金的记录,包含员工编号、接收奖金日期、奖金类型。 奖金类型的值是 1,表示奖金金额为薪水的 10%。 2,表示奖金金额为薪水的 20%。 3,表示奖金金额为薪水的 30%。
表: 薪水表
+-------------+--------------+ | 字段名称 | 类型 | +-------------+--------------+ | 雇员编号 | INT | | 薪水 | INT | | 起始日期 | date(255) | | 结束日期 | date(255) | +-------------+--------------+ 雇员编号 是该表的主键。 雇员编号 是“雇员奖金表” 、 “雇员表” 表中 雇员编号 的外键。 该表的每一行表示员工发放薪水相关的信息,包含雇员编号、薪水、起始日期、结束日期。 结束日期 ='9999-01-01' 的数据表示是员工当前薪水。
编写一个SQL查询,查询查找雇员编号、名、姓、奖金类型、对应的当前薪水及奖金金额。
查询结果如下例所示。
示例 1:
输入: 表:雇员表 +-------+-----------+-----------+-----------+----+-------------+ | 雇员编号 | 出生日期 | 名 | 姓 | 性别 | 雇用日期 | +-------+-----------+-----------+-----------+----+-------------+ | 10001 | 1953/9/2 | Georgi | Facello | M | 1986/6/26 | | 10002 | 1964/6/2 | Bezalel | Simmel | F | 1985/11/21 | | 10003 | 1959/12/3 | Parto | Bamford | M | 1986/8/28 | | 10004 | 1954/5/1 | Chirstian | Koblick | M | 1986/12/1 | | 10005 | 1955/1/21 | Kyoichi | Maliniak | M | 1989/9/12 | | 10006 | 1953/4/20 | Anneke | Preusig | F | 1989/6/2 | | 10007 | 1957/5/23 | Tzvetan | Zielinski | F | 1989/2/10 | | 10008 | 1958/2/19 | Saniya | Kalloufi | M | 1994/9/15 | | 10009 | 1952/4/19 | Sumant | Peac | F | 1985/2/18 | | 10010 | 1963/6/1 | Duangkaew | Piveteau | F | 1989/8/24 | | 10011 | 1953/11/7 | Mary | Sluis | F | 1990/1/22 | +-------+-----------+-----------+-----------+----+-------------+ 表:雇员奖金表 +-------+-----------+-------+ | 雇员编号 | 接收日期 | 奖金类型 | +-------+-----------+-------+ | 10001 | 2010/1/1 | 1 | | 10002 | 2010/10/1 | 2 | | 10003 | 2011/12/3 | 3 | | 10004 | 2010/1/1 | 1 | +-------+-----------+-------+ 表:薪水表 +-------+-------+-----------+------------+ | 雇员编号 | 薪水 | 起始日期 | 结束日期 | +-------+-------+-----------+------------+ | 10001 | 60117 | 1986/6/26 | 1987/6/26 | | 10001 | 62102 | 1987/6/26 | 1988/6/25 | | 10001 | 66074 | 1988/6/25 | 1989/6/25 | | 10001 | 66596 | 1989/6/25 | 1990/6/25 | | 10001 | 66961 | 1990/6/25 | 1991/6/25 | | 10001 | 71046 | 1991/6/25 | 1992/6/24 | | 10001 | 74333 | 1992/6/24 | 1993/6/24 | | 10001 | 75286 | 1993/6/24 | 1994/6/24 | | 10001 | 75994 | 1994/6/24 | 1995/6/24 | | 10001 | 76884 | 1995/6/24 | 1996/6/23 | | 10001 | 80013 | 1996/6/23 | 1997/6/23 | | 10001 | 81025 | 1997/6/23 | 1998/6/23 | | 10001 | 81097 | 1998/6/23 | 1999/6/23 | | 10001 | 84917 | 1999/6/23 | 2000/6/22 | | 10001 | 85112 | 2000/6/22 | 2001/6/22 | | 10001 | 85097 | 2001/6/22 | 2002/6/22 | | 10001 | 88958 | 2002/6/22 | 9999/1/1 | | 10002 | 72527 | 1996/8/3 | 1997/8/3 | | 10002 | 72527 | 1997/8/3 | 1998/8/3 | +-------+-------+-----------+------------+ 输出: +-----------+---------+--------+---------+---------+ | 雇员编号 | 名 | 姓 | 奖金类型 | 薪水 | +-----------+---------+--------+---------+---------+ | 10001 | Georgi |Facello | 1 | 88958 | +-----------+---------+--------+---------+---------+
