mysql - 如何列出员工每周是否记录时间

标签 mysql sql pivot

我有这个数据库,用来记录打卡时间。它具有下面列出的字段。

emplid,end_date,day0,day1,day2,day3,day4,day5,day6  

end_date 是该周(每周日)一周的最后一天。因此,如果有人记录了 5 周的时间,他们应该有 5 行,每行都有不同的结束日期。我想做的是创建一个人的名单,这些人忘记记录直到今天为止的任何几周的时间。我想要一行显示迄今为止所有星期的列表。例如

emplid,Week1,Week2,Week3,Week4,Week5.
12345 ,1    ,1    ,1    ,0    ,1

这就是我所拥有的。

SELECT COUNT(end_date) AS Week1, 
       COUNT(end_date) AS Week2 
FROM   `aca_time_record` 
WHERE  `emplid` = 025580 
HAVING week1 = '2013-10-05' 
       AND week2 = '2013-10-12' 

最佳答案

您需要计算每个员工每周未打卡的天数,然后将其转换为最终结构。详情请参阅此答案 - MySQL pivot table .

关于mysql - 如何列出员工每周是否记录时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551130/

相关文章:

sql-server - 将多行合并为一行

MySQL 将行转为动态数量的列

Python插入SQL unicode错误

sql - SQL中,如果只想求交集,总能写一条内连接语句作为主查询和子查询吗?

php - 使用mysql创建过期日期

mysql - 按存储过程参数排序

mysql - 如果 MySQL 中不存在则添加列

mysql 在连接表时删除行

php - Laravel 5 更新所有 Pivot 条目

java - JDBC : foreign key on PK created in same transaction