Hola amigos:
Tengo un problema con un procedimiento almacenado, y es que tengo que acumular los saldos de las dos columnas llamadas saldo y saldo2 y no se como hacerlo.
Vayamos por partes, este es el codigo que tengo dentro del procedimiento:
Código SQL
[-] for select costes.codigo, sum(lista.sal1), sum(lista.sal2), costes.nombre from
(select costespago.codigo as cod, costespago.importe as sal1, cast('0.00' as numeric(10,2)) as sal2 from costespago
union all
select ejecutapago.codigo as cod, cast('0.00' as numeric(10,2)) as sal1, ejecutapago.importe as sal2 from ejecutapago) as lista
right join costes on costes.codigo=lista.cod
group by costes.codigo, costes.nombre
order by costes.codigo
into :codigo, :saldo, :saldo2, :nombre do
begin
if (saldo is null) then saldo=0;
if (saldo2 is null) then saldo2=0;
suspend;
end
este codigo me devuelte un listado que seria perfecto para estas necesidades salvo que las columnas saldo y saldo2, que aun siendo correctas las cantidades que muestra para cada registro, tengo que acumularlas de la siguiente manera:
Supongamos que obtenemos la siguiente lista para acumular:
Cita:
CODIGO SALDO SALDO2 NOMBRE
------- ------- ------- --------
A 0 0
A1 1.000 0
A11 0 1.000
A12 1.000 0
|
y necesito que el listado quede de la siguiente manera a ser posible diseñado dentro del mismo procedimiento:
Cita:
CODIGO SALDO SALDO2 NOMBRE
------- ------- ------- --------
A 2.000 1.000
A1 2.000 1.000
A11 0 1.000
A12 1.000 0
|
Es decir, acumular el saldo y saldo2 de un codigo en los registros donde el codigo sea igual al mismo descontando la ultima letra en cada pasada, o lo que es lo mismo, el saldo y saldo2 del codigo A12 se acumularia en los codigos A1 y A, y asi sucesivamente con todo el listado.
Espero que me entiendan y que tengan alguna posible solución para hecharme una manilla...
Gracias...