我有这张表
TBLAttendance
我想以下列格式为每位员工提供输出
| EmployeeCode | AM_LOG_IN | AM_LOG_OUT | PM_LOG_IN | PM_LOG_OUT |
|--------------|-----------|------------|-----------|------------|
| 12345 | 09:30:01 | 12:02:04 | 13:15:06 | 18:05:02 |
我正在使用MSAccess,请帮助我使用正确的查询/方法。 我能用很多代码做到这一点,但我不喜欢我的解决方案。 我可以使用LINQ ..
答案 0 :(得分:0)
试试这个,
SELECT A.EmployeeCode, A.AM_LOG_IN, A.AM_LOG_OUT, A.PM_LOG_IN, A.PM_LOG_OUT FROM(
SELECT EmployeeCode, TimeLog AS AM_LOG_IN FROM TBLAttendance
WHERE LogType = 0
UNION
SELECT EmployeeCode, TimeLog AS AM_LOG_OUT FROM TBLAttendance
WHERE LogType = 1
UNION
SELECT EmployeeCode, TimeLog AS PM_LOG_IN FROM TBLAttendance
WHERE LogType = 2
UNION
SELECT EmployeeCode, TimeLog AS PM_LOG_OUT FROM TBLAttendance
WHERE LogType = 3
) A
GROUP BY A.EmployeeCode
答案 1 :(得分:0)
以Madhawas为出发点:
SELECT
A.EmployeeCode,
Sum(A.AI) AS AM_LOG_IN,
Sum(A.AO) AS AM_LOG_OUT,
Sum(A.PI) AS PM_LOG_IN,
Sum(A.PO) AS PM_LOG_OUT
FROM
(SELECT
EmployeeCode,
TimeLog AS AI, Null AS AO, Null AS PI, Null AS PO
FROM TBLAttendance
WHERE LogType = 0
UNION ALL
SELECT
EmployeeCode,
Null AS AI, TimeLog AS AO, Null AS PI, Null AS PO
FROM TBLAttendance
WHERE LogType = 1
UNION ALL
SELECT
EmployeeCode,
Null AS AI, Null AS AO, TimeLog AS PI, Null AS PO
FROM TBLAttendance
WHERE LogType = 2
UNION ALL
SELECT
EmployeeCode,
Null AS AI, Null AS AO, Null AS PI, TimeLog AS PO
FROM TBLAttendance
WHERE LogType = 3
) AS A
GROUP BY A.EmployeeCode