Reporte facturas de venta con el nº de pedido

Buenas tardes amig@s,

Tengo esta consulta en SQL y no me da bien el Docnum del pedido al que está enlazada la factura,

SELECT
T0.[DocNum],
T0.[DocDate],
T0.[CreateDate],
T0.[CardCode] AS ‘Código Cliente’,
T0.[CardName] AS ‘Nombre Cliente’,
T0.[NumAtCard],
T0.[ObjType] AS ‘Tipo Factura’,
T0.[DocTotal]- T0.[VatSum] AS ‘Base imponible’,
T0.[VatSum] AS ‘Impuesto’,
T0.[DocTotal] ‘Total Factura’,
T0.[Comments],
T0.[U_NVT_ORDERTYPE],
T4.DocNum
FROM OINV T0
INNER JOIN ORDR T4 ON T4.DocEntry = T0.DocEntry

WHERE T0.[CANCELED] =‘N’

Por favor alguien me puede ayudar?

Gracias anticipadas.

Jose buenas tardes, lo Documentos en SAP se relacionan por el detalle. Tenes que hacer un jon con el detalle de la factura que seria la tabla INV1 luego ir al Remito DLN1 luego a la RDR1 y recien ahi llegas a la ORDR los campos para unir las tablas se llaman BaseEntry, BaseType y BaseLine

Gracias @Fer_Munoz ,

Te pongo la consulta de nuevo, pero no se que estoy haciendo mal porque no me sale el T4.DocNum que es el pedido
SELECT
T0.[DocNum],
T0.[DocDate],
T0.[CreateDate],
T0.[CardCode] AS ‘Código Cliente’,
T0.[CardName] AS ‘Nombre Cliente’,
T0.[NumAtCard],
T0.[ObjType] AS ‘Tipo Factura’,
T0.[DocTotal]- T0.[VatSum] AS ‘Base imponible’,
T0.[VatSum] AS ‘Impuesto’,
T0.[DocTotal] ‘Total Factura’,
T0.[Comments],
T0.[U_NVT_ORDERTYPE],
T4.DocNum
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
WHERE T0.[CANCELED] =‘N’

:sneezing_face:

Tambien es depende de como hagan los circuitos, hacen Pedido - Remito - Factura?

@Fer_Munoz hacen Pedido y luego factura

Bien, pense que tenian remito de por medio. Entonces te quedaria asi

SELECT
T0.[DocNum],
T0.[DocDate],
T0.[CreateDate],
T0.[CardCode] AS ‘Código Cliente’,
T0.[CardName] AS ‘Nombre Cliente’,
T0.[NumAtCard],
T0.[ObjType] AS ‘Tipo Factura’,
T0.[DocTotal]- T0.[VatSum] AS ‘Base imponible’,
T0.[VatSum] AS ‘Impuesto’,
T0.[DocTotal] ‘Total Factura’,
T0.[Comments],
T0.[U_NVT_ORDERTYPE],
T4.DocNum
FROM [dbo].[OINV]T0
INNER JOIN [dbo].[INV1] T1 ON T0.DocEntry = T1.DocEntry
LEFT JOIN [dbo].[RDR1] T3 ON T1.BaseEntry = T3.DocEntry AND T1.BaseLine = T3.LineNum AND T1.BaseType = ‘17’
LEFT JOIN [dbo].[ORDR] T4 ON T4.DocEntry = T3.DocEntry
WHERE T0.[CANCELED] =‘N’

Perdona @Fer_Munoz , pero como ves en la imagen me da NULL todos

Me mostrarias el mapa de relaciones de algun circuito?

@Fer_Munoz aquí está

Yo tengo HANA sacale las comillas. Asi deberia funcionar
SELECT
T0.“CardCode”,
T3.“DocNum”
FROM OINV T0
INNER JOIN INV1 T1 ON T0.“DocEntry” = T1.“DocEntry”
LEFT JOIN RDR1 T2 ON T1.“BaseEntry” = T2.“DocEntry” AND T1.“BaseLine” = T2.“LineNum”
LEFT JOIN ORDR T3 ON T2.“DocEntry” = T3.“DocEntry”

agregaselo asi
LEFT JOIN RDR1 T2 ON T1.“BaseEntry” = T2.“DocEntry” AND T1.“BaseLine” = T2.“LineNum” AND T1.BaseType" = T2.ObjType

@Fer_Munoz :sneezing_face: :sneezing_face: :sneezing_face:

Es raro, si pones Where T0.DocEntry = “Numero de docentry de la factura del mapa de relaciones que me pasaste”

Fijate si estas en la BD correcta

Pero es que lo que busco es la relación de las facturas con su pedido :cry:

La idea es para probar con un solo documento para ver si la query funciona correctamente

voy a probarlo con esa factura

te puede pasar que tengas remitos tambn asociados entonces tenes que hacer varios union

ejemplo
Pedido - factura
union all
pedido - remito -factura

@Fer_Munoz ahora si ha funcionado con este código

SELECT DISTINCT
T0.DocEntry,
T0.[DocNum],
T0.[DocDate],
T0.[CreateDate],
T0.[CardCode] AS ‘Código Cliente’,
T0.[CardName] AS ‘Nombre Cliente’,
T0.[NumAtCard],
T0.[ObjType] AS ‘Tipo Factura’,
T0.[DocTotal]- T0.[VatSum] AS ‘Base imponible’,
T0.[VatSum] AS ‘Impuesto’,
T0.[DocTotal] ‘Total Factura’,
T0.[Comments],
T0.[U_NVT_ORDERTYPE],
T3.DocNum
FROM [dbo].[OINV]T0
INNER JOIN [dbo].[INV1] T1 ON T0.DocEntry = T1.DocEntry
LEFT JOIN [dbo].[RDR1] T2 ON T1.BaseEntry = T2.DocEntry AND T1.BaseLine = T2.LineNum AND T1.BaseType = T2.ObjType
LEFT JOIN [dbo].[ORDR] T3 ON T3.DocEntry = T2.DocEntry
WHERE T0.DocNum = ‘210858’