Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

Query de OV´s, OC´s y Facturas

Hola consultores! Estoy realizando un query para el departamento de ventas y prácticamente necesitan esto

# Orden de compraFactura OCOrden de ventaFactura OV

Encontré esta consulta que muestra para las ordenes de compra,la factura respectiva y otros campos.

-- VISTA PRINCIPAL

SELECT DISTINCT

T0.DocNum 'Orden de compra' ,T0.NumAtCard [Referencia] ,T0.DocDate [Fecha],

T1.DocNum 'Factura Orden de Compra', T1.NumAtCard [Referencia], T1.DocDate [Fecha]

FROM OPOR T0

LEFT JOIN

(

-- VISTA "FACTURA - ÓRDEN DE COMPRA

SELECT DISTINCT T1.DocNum, T1.NumAtCard, T1.DocDate, T0.BaseEntry, T0.BaseType

FROM PCH1 T0

INNER JOIN OPCH T1 ON T0.DocEntry = T1.DocEntry

WHERE T0.BaseType = 22

UNION ALL

-- VISTA "FACTURA - ENTRADA - ÓRDEN DE COMPRA

SELECT DISTINCT T1.DocNum, T1.NumAtCard, T1.DocDate, T2.BaseEntry, T2.BaseType

FROM PCH1 T0

INNER JOIN OPCH T1 ON T0.DocEntry = T1.DocEntry

INNER JOIN PDN1 T2 ON T0.BaseEntry = T2.DocEntry AND T0.BaseType = T2.ObjType

WHERE T2.BaseType = 22

) T1

ON T0.DocEntry = T1.BaseEntry AND T0.ObjType = T1.BaseType

WHERE T0.DocDate >= '20151001' AND T0.DocDate <= '20151031'

ORDER BY 1

Y funciona perfectamente, el detalle es ahora mostrar las OV´s y las facturas de las mismas. Lo que planeo hacer es basarme en esa consulta para realizar la otra. Mi pregunta sería si puedo hacer uso de un UNION para juntar esas 2 consultas y que se muestren simultáneamente o mejor aun, mostrar todo en una sola consulta sin necesidad del union y ya decir si es OC u OV, podria ser un case.


Si alguien tiene una consulta para las OV´s o una para los 2 tipos de ordenes o alguna idea de como seguir de aqui se los agradecería.

Saludos!

Former Member
Former Member replied

Al final use esta consulta, en resumen muestra tu orden de venta, orden de compra del cliente y factura. La dejo aquí por si alguien le da uso algún día.

SELECT Distinct T0.DocNum 'Orden de venta',t0.numatcard 'Orden de compra',t2.docnum 'Factura' ,(t2.doctotal/1.16) as 'Importe Factura',t2.doctotal 'Importe neto Factura',T2.CardName 'Cliente',  T0.DocDate 'Fecha orden',T2.DocDate 'Fecha factura', T3.SlpName 'Empleado Ventas'

FROM ORDR T0   

INNER JOIN INV1 T1 ON T1.BaseEntry=T0.DocEntry AND T1.BaseType='17'   

INNER JOIN OINV T2 ON T2.DocEntry=T1.DocEntry

inner join OSLP T3 on T2.SlpCode=T3.SlpCode

group by T2.DocNum,T0.DocNum,T2.DocTotal,T2.CardName,T0.DocDate, T2.DocDate,T3.SlpName,t0.NumAtCard

order by 6

0 View this answer in context
Not what you were looking for? View more on this topic or Ask a question