如何通过mysql查询从考勤表中获取考勤报表?

iyr7buue  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(311)

我创建了一个考勤表。我成功地插入了数据,但是当从考勤表中提取数据时,我需要的考勤表的数据没有显示出来。 in_out 列保留输入和输出时间的引用。值“1”表示输入时间,值“2”表示输出时间。这是我的问题。

SELECT t.person_id, 
       t.date, 
       Substring_index(t.in_out, '#', 1)                           am_in, 
       Substring_index(Substring_index(t.in_out, '#', 2), '#', -1) am_out 
FROM   (SELECT h.person_id, 
               h.date, 
               Group_concat(h.timedata ORDER BY h.in_out SEPARATOR '#') in_out 
        FROM   attendances h 
        GROUP  BY h.person_id, 
                  h.date) t


当人超时未进入及时显示值时 time_out 我想展示的专栏 null 列而不是相同的重复时间。
我想要这个结果。

aij0ehis

aij0ehis1#

你可以试着用 CASE WHEN 表达

select t.person_id,t.date,
substring_index(t.in_out,'#',1) am_in, 
case when substring_index(t.in_out,'#',1)=substring_index(substring_index(t.in_out,'#',2),'#',-1) then 'Can not scan' else substring_index(substring_index(t.in_out,'#',2),'#',-1) end as am_out
from 
(
select h.person_id,h.date,group_concat(h.timedata order by h.in_out separator '#') in_out from attendances h group by h.person_id,h.date 
) t

相关问题