这是我的考勤表checktype 0用作intime,1用作时间, 我希望时间为checktype = 0的intime和checktype = 1的outtime的时间 根据日期进行单次输入,所有empid顺序将按升序进行 对于checktype 0和降序为checktype 1
我想要下面的类型结果
答案 0 :(得分:1)
这是为每位员工每天选择最短的维修时间和最长的停机时间的方法:
select min(case when checktype = 0 then time end) min_intime,
max(case when checktype = 1 then time end) max_outtime,
empid,
date
from mytable
group by empid, date
答案 1 :(得分:1)
在这种情况下,我们可以使用OUTER APPLY为选择设置不同的集合:
select
min(t.time) inTime,
max(t1.time) outTime,
t.empid,
t.date
from table1 t
outer apply(select time from table1 t1 where t.empid = t1.empid
and t1.checktype = 1) t1
where t.checktype = 0
group by t.empid, t.date