• Then this?

    DECLARE @TableA TABLE

    (

    EmployeeIDINT

    ,EmployeeLoginDateTimeDATETIME

    ,JobFunction VARCHAR(25)

    )

    INSERT @TableA

    SELECT 123,'2012-02-01 01:00:24','Coding'

    UNION ALL SELECT 123,'2012-02-01 3:00:00','Programming'

    UNION ALL SELECT 123,'2012-02-01 5:00:00' ,'LogOut'

    UNION ALL SELECT 234,'2012-02-01 01:00:24','Coding'

    UNION ALL SELECT 234,'2012-02-01 3:00:00','Programming'

    UNION ALL SELECT 234,'2012-02-01 5:00:00' ,'Coding'

    UNION ALL SELECT 234,'2012-02-02 01:00:24','Coding'

    UNION ALL SELECT 234,'2012-02-02 3:00:00','Programming'

    UNION ALL SELECT 234,'2012-02-02 5:00:00' ,'Coding'

    UNION ALL SELECT 234,'2012-02-03 5:00:00' ,'Coding'

    UNION ALL SELECT 234,'2012-02-04 5:00:00' ,'Coding'

    UNION ALL SELECT 234,'2012-02-04 7:00:00' ,'Logout'

    UNION ALL SELECT 567,'2012-02-01 3:00:00','Programming'

    UNION ALL SELECT 567,'2012-02-01 5:00:00' ,'LogOut'

    UNION ALL SELECT 567,'2012-02-02 3:00:00','Programming'

    UNION ALL SELECT 789,'2012-02-01 3:00:00','Programming'

    SELECT EmployeeID

    ,CrsApp.EmployeeLoginDateTime

    ,'Missed LogOut' JobFunction

    FROM @TableA OutTab

    CROSS APPLY ( SELECT DATEADD(DD,DATEDIFF(DD,0,OutTab.EmployeeLoginDateTime),0) ) CrsApp (EmployeeLoginDateTime)

    WHERE NOT EXISTS

    ( SELECT 1

    FROM @TableA InrTab

    WHERE InrTab.JobFunction = 'LogOut'

    AND InrTab.EmployeeID = OutTab.EmployeeID

    AND DATEADD(DD,DATEDIFF(DD, 0 ,InrTab.EmployeeLoginDateTime),0) = CrsApp.EmployeeLoginDateTime)

    GROUP BY EmployeeID

    ,CrsApp.EmployeeLoginDateTime