cancel
Showing results for 
Search instead for 
Did you mean: 

Informe de ordenes de compra

Former Member
0 Kudos

Buenas tardes, tengo un inconveniente con este informe, soy nuevo en SAP, me están pidiendo un query con los siguientes parámetros:

que muestre el ítem del producto,Descripción, cantidad solicitada, cantidad recibida, y cantidad faltante, fecha de entrega del proveedor, hasta el momento tengo el query asi:

SELECT T1.[ItemCode], T1.[Dscription], T1.[Quantity] as 'Cantidad Solicitada'

FROM OPOR T0  INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry

pero no he podido enlazar la tabla con las entradas de mercancía para traer la cantidad recibida y calcular la cantidad faltante, alguien me podria guiar con  este tema

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hola Oscar,

Puede probar si el siguiente query le arroja los resultados que requiere?

SELECT     T1.[ItemCode]

    , T1.[Dscription]

    , T1.[Quantity]

    , T3.[Quantity]

    , T3.[ShipDate]

    , T3.[OpenQty]

FROM     OPOR T0 

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

    LEFT JOIN OPDN T2 ON T1.TrgetEntry = T2.DocNum

    INNER JOIN PDN1 T3 ON T2.DocEntry = T3.DocEntry

Espero serle de ayuda.

Atte. Rosa

Former Member
0 Kudos

Gracias Rosa eres muy amable me fue muy util.

Answers (2)

Answers (2)

Former Member
0 Kudos

Yo basaría toda la consulta en la tabla de Ordenes, tal como lo tienes.


SELECT T1.ItemCode, T1.Dscription, T1.Quantity, T1.OpenQty, T1.Quantity-T1.OpenQty [Faltante], T1.ShipDate

-- , *

FROM OPOR T0

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

WHERE 1=1

Al hacerlo de la forma en que indica Rosa, la consulta puede duplicar resultados, cuando tengas +2 entregas que apuntan a la misma posición de orden de compra, indicando que se pidio la cantidad*N (segun la cantidad de entregas que hagan referencia a esa posición)
Además la consulta entrega la cantidad pendiente de la entrega y no de la orden de compra, es decir, muestra las cantidades que no han sido facturadas.

Sin embargo la consulta de la amiga Rosa permite obtener la fecha real de entrega, pero tendrías que agrupar para que no se indetermine y asi, sólo obtendrías la ultima fecha de entrega del proveedor.


SELECT

  T1.[ItemCode]

    , T1.[Dscription]

    , MAX(T3.[TaxDate]) [Ult. Fecha entrega]

    , AVG(T1.[Quantity]) [Cant. solicitada]

    , SUM(T2.[Quantity]) [Cant. recibida]

    , (AVG(T1.[Quantity])-SUM(T2.[Quantity])) [Cant. Faltante]

FROM     OPOR T0

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

    LEFT OUTER JOIN PDN1 T2 ON T1.DocEntry=T2.BaseEntry AND T1.LineNum=T2.BaseLine

    INNER JOIN OPDN T3 ON T2.DocEntry= T3.DocEntry

WHERE 1=1

GROUP BY

  T1.[ItemCode]

    , T1.[Dscription]

Espero que todo esto te ayude.

slds.

JEL

Former Member
0 Kudos

Gracias julio, tengo una duda el AVG es para que no duplique la cantidad segun las entregas?

Former Member
0 Kudos

¿que versión de SAP tienes?

Former Member
0 Kudos

Hola fernando la version es 9.0

Former Member
0 Kudos

Ya en la versión 9 existe un campo en la orden de compra que te indica la cantidad entregada.

Si esto no es suficiente y aun deseas hacer una query que te cruce las ordenes de compra con las recepciones te recomiendo que el join no sea por el documento destino sino por el documento por la sencilla razón de que si una oreden de compra tiene 2 recepciones y haces un join por documento destino solo te aparecerá el ultimo. Como para empezar tu query (insisto si es que es necesario, ya que probablemente  que con el campo de cantidad entregada te debiera bastar)  seria:

Former Member
0 Kudos

Fernando gracias por responder, seria algo asi?

selecciono el campo de cantidad (OpenQty) de la orden y el de cantidad pendiente (OpenCreQty) la diferencia de estos seria la cantidad recibida..pero solo serviria si la entrada de mercancia viene copiada de la orden de compra o pedido?