gpt4 book ai didi

MySQL 计算 2 个表中的日期,但不计算重复日期

转载 作者:行者123 更新时间:2023-11-29 11:55:57 25 4
gpt4 key购买 nike

我在 mysql 中有 2 个表1 个表的公共(public)假期位于:

id   empid      date
1 10 2015-10-17
2 10 2015-12-24
3 10 2016-01-01
4 11 2015-10-17
5 11 2015-12-24
6 11 2016-01-01

我有第二张 table ,假期在

id    employeeid           date
1 10 2015-10-15
2 10 2015-10-16
3 10 2015-10-17
4 10 2015-10-18
5 11 2015-11-11

问题是如何将两个表连接在一起并进行计数,而不计算任何重复的日期(两个表中的日期)计数应该是 6 天假期,因为 2015-10-17 在两个表中都存在员工 ID 10。我的表中有多个员工 ID 和日期。

employee 10 count 6
employee 11 count 4

我尝试过内部联接,但无法解决

最佳答案

select count(t.u_date) as employee_count, t.employee_id
from (
select date as u_date, employee_id
from table

union

select date as u_date, employee_id
from table
) as t
group by t.employee_id

FIDDLE_EXAMPLE

编辑:

对于更新后的查询,您可以这样做

SELECT 
...
FROM employees AS e
LEFT JOIN
( SELECT empid, date, hours
FROM holidays_taken
UNION
SELECT empid, date, hours
FROM public_holidays
) AS h ON e.id = h.empid
WHERE e.id = 1
GROUP BY Year

关于MySQL 计算 2 个表中的日期,但不计算重复日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33191412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com