Hier ist meine DatenBesucherrekord von biometrischer Gerät
|Id |EmpCode |CheckInCheckOutDate |WorkDate |InOutMode
|247 |51 |2017-02-13 20:08:52.000 |2017-02-13 20:08:52.000 |0
|392 |51 |2017-02-13 22:38:51.000 |2017-02-13 22:38:51.000 |1
|405 |51 |2017-02-13 22:59:18.000 |2017-02-13 22:59:18.000 |0
|415 |51 |2017-02-13 23:18:17.000 |2017-02-13 23:18:17.000 |1
|423 |51 |2017-02-13 23:33:44.000 |2017-02-13 23:33:44.000 |0
|456 |51 |2017-02-14 01:30:15.000 |2017-02-13 01:30:15.000 |1
|463 |51 |2017-02-14 02:52:02.000 |2017-02-13 02:52:02.000 |0
|483 |51 |2017-02-14 05:11:54.000 |2017-02-13 05:11:54.000 |1
|1034 |51 |2017-02-14 20:09:23.000 |2017-02-14 20:09:23.000 |0
|1172 |51 |2017-02-14 21:59:23.000 |2017-02-14 21:59:23.000 |1
|1217 |51 |2017-02-14 22:30:28.000 |2017-02-14 22:30:28.000 |0
|1238 |51 |2017-02-14 22:49:51.000 |2017-02-14 22:49:51.000 |1
|1257 |51 |2017-02-14 23:19:10.000 |2017-02-14 23:19:10.000 |0
|1315 |51 |2017-02-15 05:04:16.000 |2017-02-14 05:04:16.000 |1
|1323 |51 |2017-02-15 05:05:17.000 |2017-02-14 05:05:17.000 |0
|1329 |51 |2017-02-15 05:08:17.000 |2017-02-14 05:08:17.000 |1
|1330 |51 |2017-02-15 05:08:18.000 |2017-02-14 05:08:18.000 |1
Ich habe diesen Code verwendet:
SELECT EmpCode,
CAST(I.CheckInCheckOutDate AS DATE) AS [Date],
CAST(I.WorkDate AS DATE) AS WorkDate,
CONVERT(VARCHAR(10), I.WorkDate, 108) AS CheckIn,
CONVERT(VARCHAR(10), O.WorkDate, 108) AS CheckOut,
CAST(DATEDIFF(second,I.WorkDate,O.WorkDate)/3600.0 AS DECIMAL(18,9)) [TotalHours]
FROM tblAttendance I
OUTER APPLY (
SELECT TOP 1 WorkDate,inOutMode FROM tblAttendance t
WHERE t.EmpCode = I.EmpCode AND t.WorkDate > I.WorkDate
ORDER BY t.WorkDate
) O
WHERE I.inOutMode = 0
AND O.inOutMode = 1 and I.empCode=51
Das Ergebnis des Code ist:
|EmpCode|Date| |WorkDate |CheckIn |CheckOut |TotalHours
|51 |2017-02-13 |2017-02-13 |20:08:52 |22:38:51 |2.499722000
|51 |2017-02-13 |2017-02-13 |22:59:18 |23:18:17 |0.316388000
|51 |2017-02-13 |2017-02-13 |23:33:44 |05:04:16 |5.508888000
|51 |2017-02-14 |2017-02-13 |02:52:02 |05:11:54 |2.331111000
|51 |2017-02-14 |2017-02-14 |20:09:23 |21:59:23 |1.833333000
|51 |2017-02-14 |2017-02-14 |22:30:28 |22:49:51 |0.323055000
|51 |2017-02-15 |2017-02-14 |05:05:17 |05:08:17 |0.050000000
Wann immer ich bin Hinzufügen von TotalHours Stunden Gruppieren nach WorkDate, gibt es falsche Antwort.
Man Menschen um hier sicher wie auf den Knopf drücken. Es liegt auf der Hand, dass das OP sich auf diese (erste) Frage konzentriert hat. Wir müssen dem OP helfen, die Frage zu verbessern, anstatt nur abzustimmen, um es zu schließen. –
'Immer wenn ich TotalHours Stunden Group By WorkDate hinzufügen, gibt es falsche Antwort.' Dies hilft nicht.bitte fügen Sie Ihr erwartetes Ergebnis und das tatsächliche Ergebnis – TheGameiswar
auch hier, um die Frage zu verbessern: https: //spaghettidba.com/ 2015/04/24/how-to-post-auf-sql-question-on-a-public-forum/ – TheGameiswar