Logo
You
Code

Calcular saldo de una cuenta corriente

Autor YouCode - http://www.youcode.com.ar/sql/calcular-saldo-de-una-cuenta-corriente-521

Como calcular el saldo de una cuenta corriente en MySql

Este query fue realizado en MySql 8, pero pueden probarlo en otras versiones.

Nuestra tabla tendra la siguiente estructura:
 
CREATE TABLE Usuario_Cuenta_Corriente (
  IdRegistro int NOT NULL AUTO_INCREMENT,
  IdUsuario int DEFAULT 0,
  IdEmpresa int DEFAULT 0,
  Movimiento varchar(255) DEFAULT '',
  Debe double(10, 2) DEFAULT 0.00,
  Haber double(10, 2) DEFAULT 0.00,
  FechaAlta date DEFAULT (CURDATE()),
  HoraAlta time DEFAULT (CURTIME()),
  PRIMARY KEY (IdRegistro)
)
ENGINE = INNODB,
AUTO_INCREMENT = 1,
CHARACTER SET utf8mb4,
COLLATE utf8mb4_0900_ai_ci,
COMMENT = 'Cuenta corriente en pesos del usuario';
Recuerden que al llenar una cuenta corriente , en el mismo registro no puede existir en ambas columnas (Debe o Haber) algun valor, o insertan en Debe o en Haber, segun en la que inserten, la otra debe quedar en cero (0).

Para calcular el saldo linea a linea, usaremos el siguiente query:
 
SELECT 
    T.IdUsuario,
    T.Movimiento,
    T.FechaAlta,
    T.Debe,
    T.Haber,
    ( select sum(Debe - Haber)  
        FROM Usuario_Cuenta_Corriente 
          where IdRegistro <= T.IdRegistro and IdUsuario = T.IdUsuario
   ) Saldo
from  Usuario_Cuenta_Corriente T;
Este query nos da totalizada la cuenta corriente por usuario, pueden crear una vista y cuando necesiten el saldo y movimientos de la cuenta corriente filtran por usuario.

Lo mejor es tenerlo en una vista para que puedan hacer algun inner join para buscar datos de otra tabla, por ej, la tabla de Empresas.

Espero que esto los ayude, lo demas ............... es pura imaginacion :)
 
http://www.youcode.com.ar/sql/calcular-saldo-de-una-cuenta-corriente-521