mysql - SQL - 日期范围返回所有数据

标签 mysql sql

我有一个简单的 PHP Web 应用程序,用于员工的日常出勤 我有一个名为 emp_master 的表,它包含所有员工数据 例如

emp_id   emp_name
1001     Abby
1002     Buub

另一个名为 timesheet_tran 的表,甚至在员工登录系统时也会进行日常事务

timesheet_tran table
date       emp_id 
02/01/14   1001
02/01/14   1002
03/01/14   1001
04/01/14   1001
04/01/14   1002

我试图找出一个在日期范围内返回数据的查询,该查询将显示该日期范围内当天已登录/未登录的所有员工。

我需要显示

emp_id   date      absent/present
1001     02/01/14  present
1002     02/01/14  present
1001     03/01/14  present
1002     03/01/14  absent

我试过了

SELECT m.emp_id,t.date FROM timesheet_tran as t RIGHT OUTER JOIN emp_master m ON t.date BETWEEN '02/01/14' AND '04/01/14' AND t.emp_id = m.emp_id

但我需要提到的每个日期的记录。

最佳答案

尝试这样

Select emp_id,emp_name,Date1,(
CASE WHEN EXISTS(
sELECT emp_id FROM timesheet_tran AT WHERE T.emp_id =AT.emp_id AND T.date1=AT.date
) then 'Present' Else 'Absent' End )as Status
FROM
(
Select emp_id ,emp_name,Cast(date as DATE)AS DATE1 from emp_master a,(Select Distinct date    from timesheet_tran ) b
) T

SQL FIDDLE DEMO

希望这对你有帮助

关于mysql - SQL - 日期范围返回所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21059114/

相关文章:

mysql - 将数据库 GUI 连接到 Vagrant (PuPHPet)

mysql - GROUP BY 在 SELECT 中选择

php - 使用 Google Maps V3 API 会导致页面刷新很多次!

mysql - Laravel 迁移失败

sql - 完整性错误 - Flask 和 SQLAlchemy

php - 多个表连接并仅使用一个 Blade 获得结果

php - 在 PHP 中,我从 mySQL 编码了一个 JSON 数组,如何使用它?解码?

php - 如何从我的上传路径文件夹的数据库中获取我的图像?

mysql - SQL Update with join - 无法在 from 子句中指定 TABLE_NAME

mysql - 根据 row=column name 更新 mySQL 表