2

我在 sql 2008 中有一个名为 tblEmployeeAttendance 的表 在此处输入图像描述

这是员工一日出勤的一些虚拟数据,例如

在此处输入图像描述

这里AI指出勤,AO指出勤,BO指BreakIn,BI指BreakOut。员工一天可以有多行。第一行应该是AI,最后一行应该是AO,其他行将是BreakIn,BreakOut顺序(即表示 BreakIn-BreakOut-BreakIn.....)。

我的预期输出是这样的

在此处输入图像描述

我需要一个 sql 查询,它将每个日期返回一行,并返回必须包含 AttendanceIn 和 AttendanceOut 时间的数据取决于 strRemark(AI 和 AO)。请帮我。

4

1 回答 1

2
SELECT 
 intEmployeeeId,
 dteAttendanceDate as 'Attendance Date'
 min(dteAttendanceTime) as 'Attendance In'
 max(dteAttendanceTime) as 'Attendance Out'
FROM
 tblEmployeeAttendance
GROUP BY
 intEmployeeeId,
 dteAttendanceDate

您可能不需要 AI 和 AO 检查,因为时间总是在一天的另一端。

于 2012-06-27T11:55:30.890 回答