I have the following SQL table:
And I would need to get something like this:
That is, add the hours grouped by date, I have tried different options, but not even close to the expected result ...
Failed attempts:
SELECT ISNULL(U.usuari, R.idUsuari) AS Usuari, R.IdRegistre, R.IdregistreS, CAST(R.Entrada AS smalldatetime) AS Entrada, CAST(R.Sortida AS smalldatetime) AS Sortida, R.TempsEnHores, R.TempsEnMinuts
FROM (SELECT IdUsuari AS idUsuari, IdRegistre, IdRegistreS AS IdregistreS, ISNULL(Projecte, '') AS Referencia, ISNULL(Traspassat, 0) AS Traspassat, DataRegistre AS Entrada,
ISNULL(DataRegistreS, DataRegistre) AS Sortida, FORMAT(DATEDIFF(minute, DataRegistre, ISNULL(DataRegistreS, DataRegistre)) / 60.0, 'N2') AS TempsEnHores,
FORMAT(DATEDIFF(second, DataRegistre, ISNULL(DataRegistreS, DataRegistre)) / 60.0, 'N2') AS TempsEnMinuts
FROM (SELECT IdUsuari, IdRegistre, Projecte, Traspassat, DataRegistre,
(SELECT TOP (1) DataRegistre
FROM vRegistreCorretgit AS V1
WHERE (IdUsuari = V2.IdUsuari) AND (Moviment = 'S') AND (DataRegistre > V2.DataRegistre)
ORDER BY DataRegistre) AS DataRegistreS,
(SELECT TOP (1) IdRegistre
FROM vRegistreCorretgit AS V1
WHERE (IdUsuari = V2.IdUsuari) AND (Moviment = 'S') AND (DataRegistre > V2.DataRegistre)
ORDER BY DataRegistre) AS IdRegistreS
FROM vRegistreCorretgit AS V2
WHERE (Moviment = 'E')) AS Entrades) AS R LEFT JOIN dbo.Usuaris AS U ON R.idUsuari = U.Id
WHERE idUsuari = 34