Untitled
unknown
plain_text
2 years ago
1.3 kB
8
Indexable
WITH CTE AS (
SELECT
P.Name AS Pracownik,
E.LoggedOn AS Data,
E.SourceID AS Źródło,
LAG(E.SourceID) OVER (PARTITION BY P.Name ORDER BY E.LoggedOn) AS PoprzednieŹródło,
LAG(E.LoggedOn) OVER (PARTITION BY P.Name ORDER BY E.LoggedOn) AS CzasWejscia
FROM
sonia.dbo.AccessUserPersons P
JOIN
sonia.dbo.EventLogEntries E ON E.PersonID = P.ID
WHERE
E.LoggedOn BETWEEN '2023-12-01 00:00:00.000' AND '2024-01-01 00:00:00.000'
AND E.EventCode = 601
AND E.SourceID IN (6, 7)
)
SELECT
Pracownik,
Data,
Źródło,
CASE
WHEN Źródło = 7 AND PoprzednieŹródło = 6 THEN
CASE
WHEN CONVERT(DATE, CzasWejscia) = CONVERT(DATE, Data) THEN
CONVERT(VARCHAR, DATEDIFF(SECOND, CzasWejscia, Data) / 3600) + ':' +
RIGHT('0' + CONVERT(VARCHAR, (DATEDIFF(SECOND, CzasWejscia, Data) % 3600) / 60), 2) + ':' +
RIGHT('0' + CONVERT(VARCHAR, DATEDIFF(SECOND, CzasWejscia, Data) % 60), 2)
ELSE '00:00:00'
END
ELSE NULL
END AS CzasPracy
FROM
CTE
WHERE
Źródło = 7 AND PoprzednieŹródło = 6
ORDER BY
Pracownik, Data;
Editor is loading...
Leave a Comment