SQL - mostrar en una consulta el saldo de una factura con abonos

 
Vista:
sin imagen de perfil
Val: 6
Ha disminuido su posición en 9 puestos en SQL (en relación al último mes)
Gráfica de SQL

mostrar en una consulta el saldo de una factura con abonos

Publicado por Manuel (3 intervenciones) el 10/04/2019 01:00:12
actualmente la consulta me arroja el siguiente resultado

saldo_fra valor saldo_deuda
5,800,000.00 2,000,000.00 3,800,000.00
5,800,000.00 2,000,000.00 3,800,000.00
5,800,000.00 1,800,000.00 4,000,000.00

y se requiere que se muestre de la siguiente forma

saldo_fra valor saldo_deuda
5,800,000.00 2,000,000.00 3,800,000.00
5,800,000.00 2,000,000.00 1,800,000.00
5,800,000.00 1,800,000.00 -

gracias por la ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 35
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

mostrar en una consulta el saldo de una factura con abonos

Publicado por Cesar (13 intervenciones) el 10/04/2019 01:14:59
Hola.

Necesitas mostrar la estructura de tus tablas, para que se te pueda ayudar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha disminuido su posición en 9 puestos en SQL (en relación al último mes)
Gráfica de SQL

mostrar en una consulta el saldo de una factura con abonos

Publicado por Manuel (3 intervenciones) el 10/04/2019 14:20:23
hola

esta es la consulta que tengo en el motor de sql

select vc.codigo_vend, vc.nombre_vendedor, vc.NRODCTO, vc.FECHA, vc.FECHA1, vc.DiasVencimiento, vc.TIPODCTO, vc.NIT, vc.nombre_cliente, vc.saldo_fra, a.DCTO,
a.FECHA AS fecha_rc, ABS(a.VALOR) AS valor,
ROUND(vc.saldo_fra - ABS(a.VALOR), 0) AS saldo_deuda,
CASE WHEN DATEDIFF(DAY, vc.FECHA1, a.FECHA) < 1 THEN 1 ELSE DATEDIFF(DAY, vc.FECHA1, a.FECHA) END AS Dias_demora_recaudo,
SUM(m.VLRCOMISIONTOTAL) AS valor_comision_bruta, MONTH(a.FECHA) AS mes, YEAR(a.FECHA) AS ano
--saldo_deuda1=Sum(Valor) over (partition by ROUND(vc.saldo_fra - ABS(a.VALOR), 0) ORDER BY a.fecha)

FROM dbo.V_facturas_credito AS vc INNER JOIN
dbo.ABONOS AS a ON a.NIT = vc.NIT AND a.FACTURA = vc.NRODCTO AND a.TIPODCTOCA = vc.TIPODCTO INNER JOIN
dbo.TRADE AS m ON vc.NRODCTO = m.NRODCTO AND vc.TIPODCTO = m.TIPODCTO AND vc.FECHA = m.FECHA AND m.VLRCOMISIONTOTAL <> 0 AND a.CONCEPTO = '101'
where vc.NIT='73083514-5' and a.fecha between '20190301' and '20190331'

GROUP BY vc.codigo_vend, vc.nombre_vendedor, vc.NRODCTO, vc.FECHA, vc.FECHA1, vc.DiasVencimiento, vc.TIPODCTO, vc.NIT, vc.nombre_cliente, vc.saldo_fra, a.DCTO, a.FECHA, a.VALOR

gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vega
Val: 187
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

mostrar en una consulta el saldo de una factura con abonos

Publicado por Vega (73 intervenciones) el 10/04/2019 15:07:30
Hola,
Sin todas las tablas y al no comprender el significado de los campos es díficil predecir si va a funcionar la consulta, dime si te funciona esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
select *
,	saldo_deuda1= sum(valor) over(partition by vc.nombre_cliente, vc.TIPODCTO ORDER BY fecha_rc ASC)
FROM
(select vc.codigo_vend
, vc.nombre_vendedor
, vc.NRODCTO
, vc.FECHA
, vc.FECHA1
, vc.DiasVencimiento
, vc.TIPODCTO
, vc.NIT
, vc.nombre_cliente
, vc.saldo_fra
, a.DCTO
, a.FECHA AS fecha_rc
, ABS(a.VALOR) AS valor
, ROUND(vc.saldo_fra - ABS(a.VALOR), 0) AS abono
, CASE WHEN DATEDIFF(DAY, vc.FECHA1, a.FECHA) < 1 THEN 1 ELSE DATEDIFF(DAY, vc.FECHA1, a.FECHA) END AS Dias_demora_recaudo
, SUM(m.VLRCOMISIONTOTAL) AS valor_comision_bruta
, MONTH(a.FECHA) AS mes, YEAR(a.FECHA) AS ano
--saldo_deuda1=Sum(Valor) over (partition by ROUND(vc.saldo_fra - ABS(a.VALOR), 0) ORDER BY a.fecha)
 
 
FROM dbo.V_facturas_credito AS vc INNER JOIN
dbo.ABONOS AS a ON a.NIT = vc.NIT AND a.FACTURA = vc.NRODCTO AND a.TIPODCTOCA = vc.TIPODCTO INNER JOIN
dbo.TRADE AS m ON vc.NRODCTO = m.NRODCTO AND vc.TIPODCTO = m.TIPODCTO AND vc.FECHA = m.FECHA AND m.VLRCOMISIONTOTAL <> 0 AND a.CONCEPTO = '101'
where vc.NIT='73083514-5' and a.fecha between '20190301' and '20190331'
 
GROUP BY vc.codigo_vend, vc.nombre_vendedor, vc.NRODCTO, vc.FECHA, vc.FECHA1, vc.DiasVencimiento, vc.TIPODCTO, vc.NIT, vc.nombre_cliente, vc.saldo_fra, a.DCTO, a.FECHA, a.VALOR)
DATOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 6
Ha disminuido su posición en 9 puestos en SQL (en relación al último mes)
Gráfica de SQL

mostrar en una consulta el saldo de una factura con abonos

Publicado por Manuel (3 intervenciones) el 10/04/2019 15:52:48
ok, muchas gracias

valioso el aporte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vega
Val: 187
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

mostrar en una consulta el saldo de una factura con abonos

Publicado por Vega (73 intervenciones) el 10/04/2019 02:01:48
Hola:
Eso lo consigues con Over().
Probando en SQL server aquí tienes un ejemplo:
1
2
3
Select
saldo_fra, valor, saldo_deuda=Sum(Valor) over (partition by {columnaDeCuentaAqui} ORDER BY {fechaDeCrédito})
From {tuTablaDePagos}
Procura cambiar los calories entre {} ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Vega
Val: 187
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

mostrar en una consulta el saldo de una factura con abonos

Publicado por Vega (73 intervenciones) el 10/04/2019 16:14:51
De nada.
Gracias por las valoraciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar