Ayuda SAP

Reporte factura vs Pedidos


#1

Señores muy buenas tardes, espero todos este bien, les escribo por este medio necesito de la sabiduría de alguno de ustedes, resulta que necesito un informe que me muestra el número de factura con su # de pedido, actualmente tengo un query que me muestra el número de factura, necesito agregarle el # pedido que va ligado al ### de factura y que me muestre el usuario que creo o modifico el pedido. este es mi query.

SELECT T0.DocDate, T2.CardCode, T2.CardName,T4.OcrCode2, T2.U_BPCO_CITY, T0.DocNum, T4.ItemCode, T1.SlpName, T4.Dscription, T4.Quantity, T4.Price, T4.PriceBefDi, (T4.Gtotal - T4.vatSum) 'Neto', T4.VatSum, T4.Gtotal
FROM OINV T0 
INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode
INNER JOIN INV1 T4 ON T4.DocEntry = T0.DocEntry
INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode
WHERE T0.DocDate BETWEEN '[%0]' AND '[%1]' AND T0.DocType = 'I'
AND 
T0.CANCELED ='N'
UNION
SELECT T0.DocDate, T2.CardCode, T2.CardName, T4.OcrCode2, T2.U_BPCO_CITY, T0.DocNum, T4.ItemCode, T1.SlpName, T4.Dscription, T4.Quantity, T4.Price*-1, T4.PriceBefDi*-1, (T4.Gtotal - T4.vatSum)*-1 'Neto', T4.VatSum*-1, T4.Gtotal*-1
FROM ORIN T0 
INNER JOIN OCRD T2 ON T0.CardCode = T2.CardCode
INNER JOIN RIN1 T4 ON T4.DocEntry = T0.DocEntry
INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode
WHERE T0.DocDate BETWEEN '[%0]' AND '[%1]' AND T0.DocType = 'I'
AND 
T0.CANCELED ='N'

Les agradecería mucho una mano amiga.

A espera de sus comentarios

Gracias


#2

Hola @GiancarloB

La relacion de la OINV (factura) con la ORDR (orden) puede ser directa o puede haber en medio una Entrega (ODLN), asi que el query dependera de como es su proceso de venta.
En caso de ser standar y usar ORDR >> ODLN >> OINV, esta seria la forma de relacionar las tablas, obteniendo solo una linea por cada detalle de factura:

FROM [dbo].[OINV]
T0 INNER JOIN [dbo].[INV1] T1 ON T0.DocEntry = T1.DocEntry
LEFT JOIN [dbo].[DLN1] T2 ON T1.BaseEntry = T2.DocEntry AND T1.BaseLine = T2.LineNum
LEFT JOIN [dbo].[RDR1] T3 ON T2.BaseEntry = T3.DocEntry AND T2.BaseLine = T3.LineNum
LEFT JOIN [dbo].[ORDR] T4 ON T4.DocEntry = T3.DocEntry

Saludos,


#3

Mil gracias Willy_Caldero, por su ayuda me sirvio ajuste mi query y me muestra lo que necesit.