Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT (@total := @total+IFNULL(SUM(tcc.consumo),0.00)-IFNULL(SUM(tcc.pago),0.00)) saldo FROM transaccion_cta_cli tcc JOIN (SELECT @total := 0) acumulados WHERE tcc.no_cta=1000 AND tcc.fecha<='2018-08-25' ORDER BY tcc.fecha
- DELIMITER /
- CREATE FUNCTION saldos_2(fecha DATE,cuenta INT )
- RETURNS DECIMAL(13,2)
- DETERMINISTIC
- BEGIN
- DECLARE saldo DECIMAL(13,2);
- SET saldo = ( SELECT (@total := @total+IFNULL(SUM(tcc.consumo),0.00)-IFNULL(SUM(tcc.pago),0.00)) saldo FROM transaccion_cta_cli tcc JOIN (SELECT @total := 0) acumulados WHERE tcc.no_cta=cuenta AND tcc.fecha<=fecha ORDER BY tcc.fecha );
- RETURN saldo;
- END
- /
- DELIMITER ;
- DELIMITER /
- CREATE PROCEDURE saldos(IN fecha DATE, OUT saldos_client DECIMAL(13,2) )
- BEGIN
- DECLARE cuenta INT;
- DECLARE sa DECIMAL(13,2);
- DECLARE fin INT DEFAULT 0;
- DECLARE cursor_ctabanc CURSOR FOR
- SELECT no_cta FROM ctabanc;
- DECLARE CONTINUE HANDLER FOR SQLSTATE '20000' SET fin = 1;
- CREATE TEMPORARY TABLE saldos_clientes(no_cta INT,saldo DECIMAL(13,2));
- OPEN cursor_ctabanc;
- REPEAT
- FETCH cursor_ctabanc INTO cuenta;
- SET sa = (SELECT saldos_2(fecha,cuenta));
- INSERT INTO saldos_clientes(no_cta,saldo) VALUES(cuenta,sa);
- UNTIL fin=1
- END REPEAT;
- CLOSE cursor_ctabanc;
- SELECT SUM(saldo) sal INTO saldos_client FROM saldos_clientes;
- END
- /
- DELIMITER ;
Add Comment
Please, Sign In to add comment