首页 > 解决方案 > 基于条件的最大和最小时间的 SQL 代码(输入/输出)

问题描述

我有一个如下表,我需要获取另一个表查询

预期查询返回

date Username "Min(sign_time)based on IN" "Max(sign_time)based on out"

原表

Sign_Date   Employee_UserName   Sign    Sign_Time
27-Mar-19   abdullah.shaaban    In      8:14
27-Mar-19   abdullah.shaaban    Out     15:32

标签: sqlsql-serverms-access-2016

解决方案


我认为对于相同的日期/用户组合,IN 时间戳总是小于 OUT 时间戳,对吧?总是有一个 IN 第一个,总是一个 out 条目是最后一个?

如果是这样,你可以使用这个:

select 
   Sign_Date, 
   Employee_UserName, 
   Min(Sign_Time) as IN, 
   Max(Sign_Time) as Out
from Table
group by Sign_Date, Employee_UserName

推荐阅读