Guest User

Untitled

a guest
Nov 15th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. 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
  2.  
  3. DELIMITER /
  4. CREATE FUNCTION saldos_2(fecha DATE,cuenta INT )
  5. RETURNS DECIMAL(13,2)
  6. DETERMINISTIC
  7. BEGIN
  8. DECLARE saldo DECIMAL(13,2);
  9. 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 );
  10. RETURN saldo;
  11. END
  12. /
  13. DELIMITER ;
  14.  
  15. DELIMITER /
  16.  
  17. CREATE PROCEDURE saldos(IN fecha DATE, OUT saldos_client DECIMAL(13,2) )
  18. BEGIN
  19. DECLARE cuenta INT;
  20. DECLARE sa DECIMAL(13,2);
  21. DECLARE fin INT DEFAULT 0;
  22.  
  23. DECLARE cursor_ctabanc CURSOR FOR
  24. SELECT no_cta FROM ctabanc;
  25.  
  26. DECLARE CONTINUE HANDLER FOR SQLSTATE '20000' SET fin = 1;
  27. CREATE TEMPORARY TABLE saldos_clientes(no_cta INT,saldo DECIMAL(13,2));
  28. OPEN cursor_ctabanc;
  29. REPEAT
  30. FETCH cursor_ctabanc INTO cuenta;
  31. SET sa = (SELECT saldos_2(fecha,cuenta));
  32.  
  33. INSERT INTO saldos_clientes(no_cta,saldo) VALUES(cuenta,sa);
  34. UNTIL fin=1
  35. END REPEAT;
  36. CLOSE cursor_ctabanc;
  37. SELECT SUM(saldo) sal INTO saldos_client FROM saldos_clientes;
  38. END
  39. /
  40. DELIMITER ;
Add Comment
Please, Sign In to add comment