Avalados por :

Optimización de consulta SQL para obtener líneas de factura de forma única con OINV, INV1 e INV3

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

Estoy tratando de obtener una sola línea por línea de factura, uniendo OINV, INV1 e INV3. Desafortunadamente, las líneas repetidas traen el impuesto y el flete de INV3 múltiples veces.

SELECT

T0.[DocNum],

T0.[DocStatus],

-- agregar tipo de documento

T0.[DocType],

T0.[DocDate] as 'Fecha de contabilización',

T0.[CardCode] AS 'Código de cliente/proveedor',

T0.[CardName] AS 'Nombre de cliente/proveedor',

T0.[NumAtCard] AS 'Nº de referencia de BP',

T0.DocCur,

T0.[DocTotal] AS 'Total del documento',

T0.[PaidToDate] AS 'Pagado hasta la fecha',

T0.[FinncPriod] AS 'Período de contabilización',

T0.[TotalExpns] AS 'Cargos totales de flete + impuestos',

T0.[U_ARGNS_TAXSATAX] AS 'Impuesto de ventas de AvaTax',

T5.[U_ARGNS_TAXTAXT] AS 'Impuesto de ventas de AvaTax FLETE',

T0.[U_ARGNS_FGTCHR] AS 'Cargo de flete',

T1.[LineNum]+1 AS 'Número de fila',

T1.[ItemCode] AS 'Nº de artículo',

T1.[Dscription] AS 'Descripción del artículo/servicio',

T1.[Quantity] AS 'Cantidad',

T1.[LineTotal] AS 'Total de fila'

FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry

INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode

INNER JOIN OITB T3 ON T2.ItmsGrpCod = T3.ItmsGrpCod

INNER JOIN OACT T4 ON T1.AcctCode = T4.AcctCode

-- modificado a LOJ desde IJ

Left Outer JOIN INV3 T5 ON T0.DocEntry = T5.DocEntry

WHERE T0.[DocDate] Between [%0] and [%1]

AND T3.ItmsGrpCod not in ('106', '107', '108', '109', '111', '120', '122')

AND T2.ItemCode not in ('REGSHIP', 'RUSHSHIP')

AND T0.DocType = 'I'

AND T0.DocCur = '$'

OINV3 Tax & Freight.png
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

2 Respuestas

0
Cargando...

Hola,

Es posible que estés obteniendo más de un valor debido a la unión externa izquierda.

Unión Externa Izquierda INV3


Verifica cuántos registros tiene un cliente en la tabla INV3.


Amit

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

Encontré la respuesta... Tuve que unir como sigue agregando T5.lineNum a T1.LineNum

JOIN externo izquierdo INV3 T5 ON T0.DocEntry = T5.DocEntry

y T5.LineNum = T1.LineNum

esto está resuelto.

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?