Reset suma al llegar un valor fijo (suma acumulada)
Publicado por Gabriel (2 intervenciones) el 14/05/2020 02:08:39
Tengo este query que crea un nuevo grupo de suma cuando el total es >= 8000, pero de en adelante siempre será > 8000 hay una manera de resetear la suma? gracias de antemano, buenas tardes.
insert into @1
SELECT a.fecha,a.rfccte, a.importe,SUM(a.importe) OVER (PARTITION BY a.RFCCTE, grp ORDER BY a.id) acumulado,0,count(a.id) OVER (PARTITION BY a.RFCCTE ORDER BY a.id),0,grp
FROM (select id,fecha, rfccte, importe , case when SUM(importe) OVER (PARTITION BY RFCCTE ORDER BY id) >= 8000 then @id+1 else 0 end grp from @2) a
ORDER BY a.id;
1 2020-01-01 ENO150211GH5 1050.00 1050.00 10.50
2 2020-01-04 ENO150211GH5 2625.00 3675.00 73.50
3 2020-01-06 ENO150211GH5 1389.50 5064.50 151.94
4 2020-01-07 ENO150211GH5 525.00 5589.50 167.69 5589.5+2625 >=8000
5 2020-01-08 ENO150211GH5 2625.00 2625.00 26.25 < reset
6 2020-01-09 ENO150211GH5 4516.24 7141.24 214.24
7 2020-01-10 ENO150211GH5 1575.00 8716.24 0.00 < aquí ya no hace el reset
8 2020-01-11 ENO150211GH5 2100.00 10816.24 0.00
9 2020-01-12 ENO150211GH5 1050.00 11866.24 0.00
10 2020-01-13 ENO150211GH5 1050.00 12916.24 0.00
11 2020-01-14 ENO150211GH5 105.00 13021.24 0.00
12 2020-01-16 ENO150211GH5 3150.00 16171.24 0.00
13 2020-01-18 ENO150211GH5 2100.00 18271.24 0.00
14 2020-01-20 ENO150211GH5 2100.00 20371.24 0.00
15 2020-01-22 ENO150211GH5 1890.00 22261.24 0.00
insert into @1
SELECT a.fecha,a.rfccte, a.importe,SUM(a.importe) OVER (PARTITION BY a.RFCCTE, grp ORDER BY a.id) acumulado,0,count(a.id) OVER (PARTITION BY a.RFCCTE ORDER BY a.id),0,grp
FROM (select id,fecha, rfccte, importe , case when SUM(importe) OVER (PARTITION BY RFCCTE ORDER BY id) >= 8000 then @id+1 else 0 end grp from @2) a
ORDER BY a.id;
1 2020-01-01 ENO150211GH5 1050.00 1050.00 10.50
2 2020-01-04 ENO150211GH5 2625.00 3675.00 73.50
3 2020-01-06 ENO150211GH5 1389.50 5064.50 151.94
4 2020-01-07 ENO150211GH5 525.00 5589.50 167.69 5589.5+2625 >=8000
5 2020-01-08 ENO150211GH5 2625.00 2625.00 26.25 < reset
6 2020-01-09 ENO150211GH5 4516.24 7141.24 214.24
7 2020-01-10 ENO150211GH5 1575.00 8716.24 0.00 < aquí ya no hace el reset
8 2020-01-11 ENO150211GH5 2100.00 10816.24 0.00
9 2020-01-12 ENO150211GH5 1050.00 11866.24 0.00
10 2020-01-13 ENO150211GH5 1050.00 12916.24 0.00
11 2020-01-14 ENO150211GH5 105.00 13021.24 0.00
12 2020-01-16 ENO150211GH5 3150.00 16171.24 0.00
13 2020-01-18 ENO150211GH5 2100.00 18271.24 0.00
14 2020-01-20 ENO150211GH5 2100.00 20371.24 0.00
15 2020-01-22 ENO150211GH5 1890.00 22261.24 0.00
Valora esta pregunta


0