¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Otimização de consulta SQL para obter linhas de fatura de forma única com OINV, INV1 e INV3

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

Estou tentando obter uma única linha por linha de fatura, unindo OINV, INV1 e INV3. Infelizmente, as linhas repetidas trazem o imposto e o frete do INV3 várias vezes.

SELECT

T0.[DocNum],

T0.[DocStatus],

-- adicionar tipo de documento

T0.[DocType],

T0.[DocDate] as 'Data do documento',

T0.[CardCode] AS 'Código do cliente/fornecedor',

T0.[CardName] AS 'Nome do cliente/fornecedor',

T0.[NumAtCard] AS 'Nº de referência do BP',

T0.DocCur,

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

T0.[PaidToDate] AS 'Pago até a data',

T0.[FinncPriod] AS 'Período de contabilização',

T0.[TotalExpns] AS 'Custos totais de frete + impostos',

T0.[U_ARGNS_TAXSATAX] AS 'Imposto sobre vendas da AvaTax',

T5.[U_ARGNS_TAXTAXT] AS 'Imposto sobre vendas da AvaTax FRETE',

T0.[U_ARGNS_FGTCHR] AS 'Custo de frete',

T1.[LineNum]+1 AS 'Número da linha',

T1.[ItemCode] AS 'Nº do artigo',

T1.[Dscription] AS 'Descrição do artigo/serviço',

T1.[Quantity] AS 'Quantidade',

T1.[LineTotal] AS 'Total da linha'

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 para LOJ de IJ

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

WHERE T0.[DocDate] Between [%0] e [%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...

Olá,

Pode ser que esteja obtendo mais de um valor devido à junção externa à esquerda.

Junção Externa à Esquerda INV3


Verifique quantos registros um cliente tem na tabela INV3.


Amit

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

Encontrei a resposta... Tive que unir como segue adicionando T5.lineNum a T1.LineNum

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

e T5.LineNum = T1.LineNum

isso está resolvido.

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?