martes, 21 de mayo de 2013

Como generar una columna SALDO al vuelo desde mysql

Pues continuamos con otras sentencias.

Tenemos la necesidad de generar una sentencia que me liste una tabla de cargos, abonos y su respectiva columna de saldo al vuelo.

Tenemos la siguiente sentencia.

SET @saldo_anterior=0;
SELECT cliente, cargo, abono, @saldo_anterior:=@saldo_anterior+cargo-abono AS saldo FROM pagoclie WHERE cliente = "01";

Para eso requerimos de generar una variable de usuario creada en la conexión activa llamada saldo_anterior, para eso utilizamos la clausula SET, nótese que debe llevar el signo de arroba (@) antes del nombre de la variable. Vale la pena comentar que algunos clientes de mysql no aceptan múltiple sentencias, pero si se genera separadamente podría funcionar.

La segunda sentencia nos lista el nombre del cliente, cargos, abonos y la variable antes creada y se hace la asignación de los saldos fila por fila, dejando ese valor en la columna saldo.

Todo esto de la tabla pagoclie y filtrando por cliente "01"

El resultados es este:

cliente    cargo    abono    saldo
                                  
01                        10.00               0.00               10.00
01                          0.00             10.00                 0.00
01                        10.00               0.00               10.00
01                          0.00             10.00                 0.00

Esperemos sea de su ayuda

Saludos

5 comentarios:

  1. En contabilidad así se utilizan los campos cargo y abono? de manera separada?
    No es una forma de desperdiciar espacio en la base de datos?
    Gracias.

    ResponderEliminar
  2. Respuestas
    1. En un solo campo, si es cargo va en positivo y si es abono en negativo (o viceversa, no soy contador).
      Y al momento de visualizar, mediante código separamos en dos columnas los positivos y los negativos.
      Pero yo preguntaba si tal vez hay alguna forma optima de mejorar el almacenamiento de los datos en la bd.

      Eliminar
  3. El como optimizar una base de datos es por seguro el como este creada y el tipo justo de datos a guardar

    ResponderEliminar
  4. gracias por el saldo; respecto a mantener columnas separadas o no, con el avance y disminución de costos ahora simplemente da lo mismo, y depende de cada programador por las ventajas que tienen ambos casos.

    ResponderEliminar