
Obtener deuda total y comprobantes impagos
Publicado por Daniel (39 intervenciones) el 28/01/2016 19:27:24
Hola al foro, tengo una consulta en Microsoft SQL Server 2000 con los siguientes datos, ahora bien, tengo que agregar una columna que me indice cuantos comprobantes se adeudan, cual sería la mejor manera de obtener la Cantidad de Comprobantes impagos?.
El SALDO me lo arroja bien, pero la cantidad de comprobantes me salen incorrectos. Debería agrupar en una subconsulta por comprobante cuyo saldo agrupado sea mayor a 0 pero no me doy cuenta la sintaxis).
MOVIMIENTOS
ID_Cliente Comprobante Importe
25 3 150
25 3 40
25 3 -190
25 4 180
25 4 50
Por ejemplo, de este Cliente 25 me tendría que decir que debe 1 comprobante.
SELECT CARNETS.NRO_CARNET, CARNETS.CUENTA, SOCIOS.Nombre AS APENOMBRE,
CARNETS.SEQUENCIAL, CONTABILIDAD.NOMBRE AS Actividad,
CARNETS.FECHA_ENTREGA, CARNETS.FECHA_VENCE,
COBRADORES.NOMBRE AS Cobrador, CARNETS.IMPORTE,
FORMAS_PAGO.Nombre AS FormaPago,
SUM(MOVIMIENTOS.IMPORTE) AS SALDO,
COUNT(MOVIMIENTOS.NROCOMPROBANTE) as Comprobantes
FROM CARNETS INNER JOIN
SOCIOS ON CARNETS.CUENTA = SOCIOS.ID_Socio INNER JOIN
CONTABILIDAD ON CARNETS.CUENTA_CONTAB = CONTABILIDAD.NUEVO_NRO_CC INNER JOIN
COBRADORES ON SOCIOS.CodigoCobrador = COBRADORES.COD_COBRADOR INNER JOIN
FORMAS_PAGO ON CARNETS.FORMA_PAGO = FORMAS_PAGO.COD_FormaPago INNER JOIN
MOVIMIENTOS ON CARNETS.CUENTA = MOVIMIENTOS.ID_Cliente
GROUP BY CARNETS.NRO_CARNET, CARNETS.CUENTA, SOCIOS.Nombre, CARNETS.SEQUENCIAL, CONTABILIDAD.NOMBRE, CARNETS.FECHA_ENTREGA, CARNETS.FECHA_VENCE, COBRADORES.NOMBRE, CARNETS.IMPORTE, FORMAS_PAGO.Nombre
Muchas gracias. Espero haber sido claro, el detalle del resto de las tablas supongo no tiene importancia.
El SALDO me lo arroja bien, pero la cantidad de comprobantes me salen incorrectos. Debería agrupar en una subconsulta por comprobante cuyo saldo agrupado sea mayor a 0 pero no me doy cuenta la sintaxis).
MOVIMIENTOS
ID_Cliente Comprobante Importe
25 3 150
25 3 40
25 3 -190
25 4 180
25 4 50
Por ejemplo, de este Cliente 25 me tendría que decir que debe 1 comprobante.
SELECT CARNETS.NRO_CARNET, CARNETS.CUENTA, SOCIOS.Nombre AS APENOMBRE,
CARNETS.SEQUENCIAL, CONTABILIDAD.NOMBRE AS Actividad,
CARNETS.FECHA_ENTREGA, CARNETS.FECHA_VENCE,
COBRADORES.NOMBRE AS Cobrador, CARNETS.IMPORTE,
FORMAS_PAGO.Nombre AS FormaPago,
SUM(MOVIMIENTOS.IMPORTE) AS SALDO,
COUNT(MOVIMIENTOS.NROCOMPROBANTE) as Comprobantes
FROM CARNETS INNER JOIN
SOCIOS ON CARNETS.CUENTA = SOCIOS.ID_Socio INNER JOIN
CONTABILIDAD ON CARNETS.CUENTA_CONTAB = CONTABILIDAD.NUEVO_NRO_CC INNER JOIN
COBRADORES ON SOCIOS.CodigoCobrador = COBRADORES.COD_COBRADOR INNER JOIN
FORMAS_PAGO ON CARNETS.FORMA_PAGO = FORMAS_PAGO.COD_FormaPago INNER JOIN
MOVIMIENTOS ON CARNETS.CUENTA = MOVIMIENTOS.ID_Cliente
GROUP BY CARNETS.NRO_CARNET, CARNETS.CUENTA, SOCIOS.Nombre, CARNETS.SEQUENCIAL, CONTABILIDAD.NOMBRE, CARNETS.FECHA_ENTREGA, CARNETS.FECHA_VENCE, COBRADORES.NOMBRE, CARNETS.IMPORTE, FORMAS_PAGO.Nombre
Muchas gracias. Espero haber sido claro, el detalle del resto de las tablas supongo no tiene importancia.
Valora esta pregunta


0