Simulate the code in a temporary table just make the changes you need
Temporal table
create table #tabla (
Name varchar(50),
Fecha datetime,
Valor int)
Records
INSERT INTO #Tabla SELECT 'A', '2017-08-01 10:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-01 11:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-01 12:45', 180
INSERT INTO #Tabla SELECT 'A', '2017-08-01 13:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-01 14:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-01 15:45', 352
INSERT INTO #Tabla SELECT 'A', '2017-08-01 16:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-01 17:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-01 18:45', 352
INSERT INTO #Tabla SELECT 'A', '2017-08-01 19:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-01 20:45', 352
INSERT INTO #Tabla SELECT 'A', '2017-08-01 21:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-01 23:45', 100
INSERT INTO #Tabla SELECT 'A', '2017-08-02 00:45', 100
INSERT INTO #Tabla SELECT 'A', '2017-08-02 01:45', 450
INSERT INTO #Tabla SELECT 'A', '2017-08-02 02:45', 450
INSERT INTO #Tabla SELECT 'A', '2017-08-02 05:45', 300
INSERT INTO #Tabla SELECT 'A', '2017-08-02 13:45', 200
INSERT INTO #Tabla SELECT 'A', '2017-08-02 10:45', 352
INSERT INTO #Tabla SELECT 'A', '2017-08-02 11:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-02 12:45', 352
INSERT INTO #Tabla SELECT 'A', '2017-08-02 13:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-02 14:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-02 15:45', 352
INSERT INTO #Tabla SELECT 'A', '2017-08-02 16:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-02 17:45', 180
INSERT INTO #Tabla SELECT 'A', '2017-08-02 18:45', 352
INSERT INTO #Tabla SELECT 'A', '2017-08-02 19:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-02 20:45', 352
INSERT INTO #Tabla SELECT 'A', '2017-08-02 21:45', 500
INSERT INTO #Tabla SELECT 'A', '2017-08-02 23:45', 352
INSERT INTO #Tabla SELECT 'A', '2017-08-03 00:45', 352
INSERT INTO #Tabla SELECT 'A', '2017-08-03 01:45', 352
Select
select Fecha2 = CASE WHEN DATEPART(HOUR, Fecha) = 0 THEN FORMAT(DATEADD(DAY, -1, Fecha), 'yyyy-MM-dd') ELSE FORMAT(Fecha, 'yyyy-MM-dd') END, SUM(Valor) from #Tabla GROUP BY CASE WHEN DATEPART(HOUR, Fecha) = 0 THEN FORMAT(DATEADD(DAY, -1, Fecha), 'yyyy-MM-dd') ELSE FORMAT(Fecha, 'yyyy-MM-dd') END
delete table
drop table #Tabla
I hope it works for you