You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写单条SQL语句,基于两张员工表生成2017年月度薪资报表

生成2017年员工分月薪资报表的SQL解决方案

没问题,这就帮你搞定这个薪资报表的需求,思路和代码如下:

核心逻辑说明

要实现按员工编号、姓名分月份展示薪资的效果,我们需要两步操作:

  1. 合并数据源:用UNION ALL把两张表的薪资数据整合到一起(两张表的月份没有重叠,不需要去重处理),只保留我们需要的字段;
  2. 行转列处理:通过CASE WHEN配合聚合函数,把每个员工的月度薪资转换成独立列展示,再按员工编号和姓名分组,确保每个员工只显示一行结果。

完整SQL查询语句

SELECT
    code,
    Name,
    MAX(CASE WHEN Month = 'April' THEN Salary ELSE NULL END) AS Apr_Salary,
    MAX(CASE WHEN Month = 'May' THEN Salary ELSE NULL END) AS May_Salary,
    MAX(CASE WHEN Month = 'June' THEN Salary ELSE NULL END) AS June_Salary,
    MAX(CASE WHEN Month = 'July' THEN Salary ELSE NULL END) AS July_Salary
FROM (
    -- 合并两张表的薪资数据,只保留需要的字段
    SELECT code, Name, Salary, Month, Year FROM employee_1
    UNION ALL
    SELECT code, Name, Salary, Month, Year FROM employee_2
) AS combined_data
WHERE Year = 2017 -- 筛选出2017年的数据
GROUP BY code, Name -- 按员工编号和姓名分组
ORDER BY code; -- 按员工编号排序

预期输出结果

执行上述SQL后,会得到如下格式的薪资报表:

codeNameApr_SalaryMay_SalaryJune_SalaryJuly_Salary
1A2000100012004000
2B3000115011503500

内容的提问来源于stack exchange,提问作者Gulshan Sonwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:30:19