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

关于查询至少存在于一个考勤表的员工跨表出勤状态的技术需求

考勤表状态汇总解决方案

嘿,这个考勤汇总的需求很好解决,用SQL就能轻松实现!下面给你两种靠谱的方案,都能生成你想要的结果——展示所有至少在一张表中存在的员工,同时标记他们在各表的出勤状态(Y=有记录,N=无记录):

方法一:先收集所有员工编码再左连接(通用所有SQL数据库)

这种方法兼容性最好,不管你用MySQL、SQL Server还是PostgreSQL都能跑通:

WITH AllEmployees AS (
    SELECT `Employee Code` FROM table1
    UNION
    SELECT `Employee Code` FROM table2
    UNION
    SELECT `Employee Code` FROM table3
)
SELECT
    ae.`Employee Code`,
    CASE WHEN t1.`Employee Code` IS NOT NULL THEN 'Y' ELSE 'N' END AS `Table 1`,
    CASE WHEN t2.`Employee Code` IS NOT NULL THEN 'Y' ELSE 'N' END AS `Table 2`,
    CASE WHEN t3.`Employee Code` IS NOT NULL THEN 'Y' ELSE 'N' END AS `Table 3`
FROM AllEmployees ae
LEFT JOIN table1 t1 ON ae.`Employee Code` = t1.`Employee Code`
LEFT JOIN table2 t2 ON ae.`Employee Code` = t2.`Employee Code`
LEFT JOIN table3 t3 ON ae.`Employee Code` = t3.`Employee Code`
ORDER BY ae.`Employee Code`;

逻辑说明:

  • 用WITH子句创建临时表AllEmployees,通过UNION从三个考勤表中收集所有唯一的员工编码(UNION会自动去重,刚好满足“仅展示至少存在于一张表中的员工”的要求);
  • 分别左连接三个考勤表,通过CASE语句判断该员工在对应表是否有记录,有就返回Y,没有返回N;
  • 最后按员工编码排序,让结果更规整。

方法二:使用全连接(适合支持FULL JOIN的数据库)

如果你的数据库支持FULL JOIN(比如SQL Server、PostgreSQL),可以用这种更简洁的写法:

SELECT
    COALESCE(t1.`Employee Code`, t2.`Employee Code`, t3.`Employee Code`) AS `Employee Code`,
    CASE WHEN t1.`Employee Code` IS NOT NULL THEN 'Y' ELSE 'N' END AS `Table 1`,
    CASE WHEN t2.`Employee Code` IS NOT NULL THEN 'Y' ELSE 'N' END AS `Table 2`,
    CASE WHEN t3.`Employee Code` IS NOT NULL THEN 'Y' ELSE 'N' END AS `Table 3`
FROM table1 t1
FULL JOIN table2 t2 ON t1.`Employee Code` = t2.`Employee Code`
FULL JOIN table3 t3 ON COALESCE(t1.`Employee Code`, t2.`Employee Code`) = t3.`Employee Code`
ORDER BY COALESCE(t1.`Employee Code`, t2.`Employee Code`, t3.`Employee Code`);

逻辑说明:

  • FULL JOIN会保留所有参与连接的表中的记录,不管是否匹配;
  • 用COALESCE函数从三个表的员工编码中取第一个非空值,得到每个员工的唯一编码;
  • 同样用CASE语句判断各表的存在状态,最后排序输出。

最终输出结果

两种方法都能生成你需要的汇总表:

Employee CodeTable 1Table 2Table 3
1001YYN
1002NYN
1003YNY

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:56:16