none
Bases de datos: Cuenta Corriente - Facturación - Pagos RRS feed

  • Pregunta

  • Buenas...!
    Estoy con un drama en un proyecto que estoy empezando. El tema es el Siguiente tengo una base de datos que esta conformada de la siguiente manera:

    Clientes: id, Nombre, teléfono, Dirección, ciudad
    Ventas: id, idCliente, fechaHora, FormadePago
    DetalleVentas: id, idVentas, idProducto, Cantidad
    Pagos: id, idCliente, FechaHora, Monto

    el tema es que quiero manejar la cuenta corriente del cliente igual que un banco. Y hacer una consulta que quede de la siguiente manera:
    Fecha      |     Descripción                  |   Debe   |   Haber  |   Saldo

    No pude sacar esa consulta.
    O tengo que crear otra tabla que se llame "CuentaCorriente"?. Y cuando la forma de pago sea acrédito guardar también el mismo registro en la tabla CtaCte?? y cuando se paga también guardar el registro en la tabla CtaCte??  como hago para que no quede ambiguo los datos que hay en la tabla de ventas, pagos y CtaCte?? 


    Espero que puedan ayudarme! 
    viernes, 10 de enero de 2014 23:31

Todas las respuestas

  • no entiendo bien la estructura de tu db...pero si es la consulta lo que nesesitas deberia ser algo asi

    SELECT SUM(ISNULL(entradas, 0))AS Depositos, SUM(ISNULL(salidas, 0)) AS Debitos ,(SUM(ISNULL(entradas, 0)) - SUM(ISNULL(salidas, 0)) ) AS Saldo FROM NOMBRE DE TU TABLAl WHERE numerodecuentabancaria=@numerodecuentabancaria"
                   


    EFRAIN MEJIAS C VALENCIA - VENEZUELA


    sábado, 11 de enero de 2014 0:00
  • hola

    podrias usar el inner join para unir la info de las tablas algo como ser

    algo que no relacionas en las tablas es la venta con el pago, o sea el cliente que es lo que paga? o sea no detallas el pago de alguna venta

    la columna Descripción de donde sale ?

    SELECT V.FechaHora, SUM(P.monto) As DEBE, SUM(DV.Cantidad * P.Monto)
    FROM  Clientes C 
    LEFT JOIN Ventas V ON C.id = V.idCliente
    LEFT JOIN DetalleVentas DV ON v.id = DV.idVentas
    LEFT JOIN Productos PD ON DV.idProducto = PD.id
    LEFT JOIN Pagos P ON C.id = P.idCliente
    GROUP BY V.FechaHora
    WHERE C.id = @id

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 11 de enero de 2014 0:47
  • Gracias por la Pronta respuesta  Efrain y Leandro... el tema es el siguiente..

    El sistema es para tienda de ropas.. y su funcionamiento es el siguiente.(es donde tengo el problema)

    - El cliente compra a credito y se le agrega a su cuenta corriente.

    - El cliente paga el total o parcial de su saldo.

    Y esta es la base de datos:  www.4shared.com/photo/hNE8tAkKce/Sin_ttulo.html


    Aun no lo termino.. me atasque en el tema de la cuenta corriente..! como les dije, quiero que quede asi:

    Fecha         | Descripción     |   Debe   |   Haber  |   Saldo

    01/01/2014   |      Venta N°201   |     250$    |       0       |     250$

    02/01/2014   |  Venta N°212      |     200$    |       0       |     450$

    03/01/2014   |  Pago de Saldo  |        0      |      300$  |     150$

    04/01/2014   |  Venta N°255    |     250$    |       0       |     400$

    Fecha:es la fecha de venta o de pago en todo caso..

    Descripción: deberia de decir el  "id de venta" o "Pago de saldo"

    Gasto: es el monto total de la venta

    Pago: el monto del pago

    Hasta ahora mi base de datos tengo el saldo como un atributo del cliente.. pero quiero sacar ese campo.

    y realizar aparte la consulta o la tabla de la cuenta corriente del cliente..!

    Desde ya Muchas gracias por los consejos..




    sábado, 18 de enero de 2014 13:26
  • Ok

    realizar aparte la consulta o la tabla de la cuenta corriente del cliente..!

    Crea una tabla  NumeroCuentaCorrienteCliente

     ID  entero autoincremental  ,  NumeroCuentaCorriente , Cliente

    y la tabla q ya tienes quedaria asi

     NumeroCuentaCorriente , fecha , descripcion , debe  ,haber , saldo


    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    domingo, 19 de enero de 2014 13:54
  • Disculpa.. No entendí muy bien.. Quedaría algo así las relaciones?? 

    http://www.4shared.com/download/FyCOpqodce/Captura.JPG

    Disculpa mi lento razonamiento pero y como hago mi consulta para sacar solo un campo de fecha y descripción para los registros de las dos tablas??

    lunes, 20 de enero de 2014 18:29
  • No puedo ayudarte mucho en cuanto al diseño de la DB , pero te recomiendo

    1. Todas tus tablas deberian tener un ID autoincremental q representaria la identidad de cada registro , luego agregarias todos los campos q nesecites

    2. Las tablas estarian relacionadas por un campo , de identico nombre y contenido encuato a formato y tipo de dato.

    3.Evita repetir los campos en tus tablas para mo hacer redundante la informacion contenida....

    Disculpa mi lento razonamiento pero y como hago mi consulta para sacar solo un campo de fecha y descripción para los registros de las dos tablas??

    SELECT  A.CampoFecha ,A.Descripcion , B.OtroCampo WHERE tabla1  A , tabla2  B 

    WHERE A.CampoRelacion = B.CampoRelacion


    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    lunes, 20 de enero de 2014 23:15
  • Por lo que puedo ver lo que necesitas es una consulta con una columna calculada la cual seria saldo a demas de eso necesitas que la columna saldo interactue bien con las de debe y haber, mira te dejo un ejemplo que tengo en postgresql por si aun te sirviese a continuacion el ejemplo:

     SELECT cc.idtrincc,
        p.codigo,
        p.nombre,
        c.idcc,
        cc.fecha,
        cc.nodoc,
        cc.concepto,
        cc.ingreso,
        cc.egreso,
        sum(cc2.ingreso - cc2.egreso)::numeric(12,2) AS saldo
       FROM tr_in_cta_cte cc
         JOIN tr_in_cta_cte cc2 ON cc.idtrincc >= cc2.idtrincc
         JOIN ctacte c ON c.idcc = cc.idcc
         JOIN personas p ON p.codigo = c.idper
      WHERE cc.idcc = cc2.idcc
      GROUP BY cc.idtrincc, c.idcc, p.codigo, p.nombre
      ORDER BY cc.idtrincc, p.codigo;

    espero que te sirva esto funciona bien como lo que necesitas hacer, yo tengo una base de datos que tiene transacciones en cuenta corriente y esta es la consulta que he utilizado.

    miércoles, 15 de octubre de 2014 10:45