¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Consulta de facturas de proveedores con subtotales de documento y monto pendiente por pagar

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

Tengo una consulta en la que obtengo todas las facturas de proveedores pendientes de pago con la información del proveedor, total de la factura, importe aplicado y monto pendiente por pagar, además de mostrar la cantidad de días que la factura lleva vencida si es el caso, etc. Sin embargo, ahora es necesario mostrar en la misma consulta subtotales del total del documento y subtotales del monto pendiente por pagar por proveedor, es decir, que en la misma consulta se sume el total del documento y el total pendiente por pagar pero agrupado por proveedor. Aún no he logrado mostrar los subtotales de esa forma. Hasta ahora tengo la siguiente consulta sin subtotales:

/ SELECT FROM [dbo].[OPCH] T4 /

Declare @Fecha1 as nvarchar(100)

/* WHERE */

set @Fecha1 = /* T4.CreateDate */ '[%0]'

SELECT T0.[CardCode] AS 'Código Proveedor', T0.[CardName] AS 'Nombre Proveedor', T0.[DocNum] AS 'Nro de Documento', T0.[DocDueDate] AS 'Fecha de Vencimiento', T0.[DocTotal] AS 'Total Documento', T0.[PaidToDate] as 'Importe', (T0.[DocTotal] - T0.[PaidToDate]) as 'Pendiente por Pagar', DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1 AS 'Dias', CASE WHEN DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<0 THEN 'Vencido' WHEN DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>=0 AND DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=30 THEN '30 Días' WHEN DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>30 AND DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=60 THEN '60 Días' WHEN DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>60 AND DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=90 THEN '90 Días' WHEN DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10))*-1>90 THEN 'Más de 90 Días' END AS 'Plazo de Vencimiento','Factura' as 'Tipo Docum'

FROM OPCH T0 WHERE T0.[CreateDate]<=@Fecha1 AND T0.[DocStatus]<>'C'

union all

SELECT T0.[CardCode] AS 'Código Proveedor', T0.[CardName] AS 'Nombre Proveedor', T0.[DocNum] AS 'Nro de Documento', T0.[DocDueDate] AS 'Fecha de Vencimiento', - T0.[DocTotal] AS 'Total Documento', T0.[PaidToDate] as 'Importe', (-T0.[DocTotal] - T0.[PaidToDate]) as 'Pendiente por Pagar', DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1 AS 'Dias', CASE WHEN DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<0 THEN 'Vencido' WHEN DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>=0 AND DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=30 THEN '30 Días' WHEN DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>30 AND DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=60 THEN '60 Días' WHEN DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1>60 AND DATEDIFF(DAY, LEFT(CONVERT(VARCHAR, T0.[DocDueDate], 102), 10), LEFT(CONVERT(VARCHAR, GETDATE() , 102), 10)) -1<=90 THEN '90 Días' WHEN DATED

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Me gustaría mucho y me serviría como guía para que otros puedan realizarlo. Además, me obligaría a aprender Crystal Report, ya que nunca lo he utilizado... ¡Gracias!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Si quieres, te puedo enviar un informe en Crystal que haga lo que necesitas.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola David,

¿Por qué no lo llevas a un informe de Crystal Report? Allí puedes hacer subtotales y lo que necesites.

Saludos,

Tere

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola David,

¿Por qué no utilizas la consulta de "Antigüedad de proveedor" del estándar indicando en el intervalo "Días" y "30"?

Un saludo,

Tere

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?