[英]Correct MS Access Query / Linq to use
我有這張桌子
TBLA的出勤率
我想以以下格式為每個員工生成輸出
| 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。
嘗試這個,
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
以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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.