La teoria dice que el orden introducción de los registros no debe importar en una base de datos relacional, el ejemplo que nos das no cumple este principio puesto que el resultado de la consulta que piedes, si la solucionamos, dependerá del orden en que se lean los registros de la t2 y tal como esta no tienes nada que los ordene...
Si quieres un resultado en función de un orden determinado de lectura de los registros este orden debe depender del contenido de un campo, no del orden de introducción del registro. Esto es solucionable con los id autoincrementales.
Reformulo tu ejemplo:
id monto
1----10
tabla t2
id idt1 monto
1--- 1 --- 5
2--- 1 --- 3
3--- 1 --- 1
4--- 1 --- 3
ahora si podemos apoyarnos en el valor del id de la tabla 2 para indicar como queremos ordenar los registros.
Vamos a intentar la consulta:
Código:
Select t2.id,
t2.idt1,
t2.monto,
(select sum(aux.monto)
from t2 as aux
where aux.idt1=t2.idt1
and aux.id<=t2.id) as cummonto
from t2 inner join t1
on t1.id=t2.idt1
where (select sum(aux.monto)
from t2 as aux
where aux.idt1=t2.idt1
and aux.id<=t2.id)<=t1.monto
order by t2.id;
Creo que funciona!!
Quim