Untitled

 avatar
unknown
plain_text
2 years ago
1.3 kB
5
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