【发布时间】:2019-07-01 07:13:06
【问题描述】:
我想从两个日期之间的出勤日志中选择一组到那时已经工作超过 10 天的员工。因此,在检查的日期范围内,雇主可能已经超过 10 天或可能超过 10 天。日志表(见下文)包含每个雇主每天的一条记录。
emp_id | date
1 | 2019-01-25
1 | 2019-01-26
1 | 2019-01-27
1 | 2019-01-28
1 | 2019-01-29
1 | 2019-01-30
1 | 2019-01-31
1 | 2019-02-01
1 | 2019-02-02
1 | 2019-02-03
1 | 2019-02-04
2 | 2019-01-29
2 | 2019-01-30
2 | 2019-01-31
2 | 2019-02-01
2 | 2019-02-02
2 | 2019-02-03
2 | 2019-02-04
2 | 2019-02-05
3 | 2019-01-23
3 | 2019-01-24
3 | 2019-01-25
3 | 2019-01-26
3 | 2019-01-27
3 | 2019-01-28
3 | 2019-01-29
3 | 2019-01-30
3 | 2019-01-31
3 | 2019-02-01
3 | 2019-02-02
选择日期范围 2019-02-01 到 2019-02-05。
- Emp 1 - 截至 2019-02-01,他已经工作了 8 天。
- Emp 1 - 到 2019-02-04,他已经工作了 11 天。
- Emp 2 - 到 2019-02-01,他已经工作了 4 天。
- Emp 2 - 到 2019-02-05,他已经工作了 8 天。
- Emp 3 - 到 2019-02-01,他已经工作了 10 天。
- Emp 3 - 到 2019-02-05,他已经工作了 14 天。
所以从上面的数据集中只有 Emp 1 和 Emp 3 应该被选择。 雇主必须在日期范围内超过 10 天。
我在 MySQL 中编写了以下查询,但它没有完成工作。应该怎么写?
SELECT emp_id FROM log
WHERE date BETWEEn '2019-02-01' AND '2019-02-05'
GROUP BY emp_id
HAVING COUNT(emp_id) > 14;
【问题讨论】:
-
你能把你的表结构和几行数据贴出来吗?
-
更新您的问题并将表格架构添加到适当的数据样本和预期结果..(您的实际数据样本没有用)
-
添加表格数据