on 01-16-2014 7:25 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
¿que versión de SAP tienes?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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:
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.