Hola niko7700:
Creo que esta consulta te serviría, hice algunas pruebas cambiando los valores de la tabla y parece que funciona.
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.08 sec)
-> (1, 'A1000', 2),
-> (2, 'B2000', 5),
-> (3, 'A1000', 4),
-> (4, 'E5000', 7),
-> (5, 'A1000', 5),
-> (6, 'B2000', 3);
Query OK, 6 rows affected (0.05 sec)
+------+---------+-------+
| id | codprod | cantv |
+------+---------+-------+
| 1 | A1000 | 2 |
| 2 | B2000 | 5 |
| 3 | A1000 | 4 |
| 4 | E5000 | 7 |
| 5 | A1000 | 5 |
| 6 | B2000 | 3 |
+------+---------+-------+
-> (
-> (
-> from tb1 T2
where T2.id
>= T1.id
and T2.codprod
= T1.codprod
-> ) acumulado
-> WHERE T1.codprod
= "A1000" -> ) T3
-> WHERE acumulado
-cantv
< 7 +------+---------+-------+
| id | codprod | cantv |
+------+---------+-------+
| 5 | A1000 | 5 |
| 3 | A1000 | 4 |
+------+---------+-------+
Igual y existe alguna forma más óptima de obtener el mismo resultado, o tal como lo recomienda Nano_, hacerlo por programación. Es cuestión de que hagas pruebas para ver si te sirve.
Saludos
Leo.