Estimados, favor de su ayuda, necesito generar una query para obtener el PPP (AvgPrice) a una fecha determinada, en la OITM sólo tengo el ultimo PPP , pero, necesito el costo a una fecha determinada (ejemplo 31-12-2018), una solución es generarlo desde el reporte de auditoria de stock, pero demora mucho debido a que necesito el PPP de 65.000 productos.
En la tabla OINM se almacena mucha información util con registro de fechas y todo
Espero este query te sirva
SELECT
T0.ItemCode AS CODIGO
,T0.Dscription AS DECRIPCCION
,T0.Warehouse AS [CODIGO BODEGA]
,T0.DocDate AS FECHA
,T0.BASE_REF AS [No DOCUEMNTO]
,T0.InQty [CANTIDAD ENTRADA]
,T0.OutQty [CANTIDAD SALIA]
,T0.Price [PRECIO]
,T0.CalcPrice [PRECIO CALCULADO]
FROM OINM AS T0
WHERE
T0.DocDate = '2018-12-31'
el campo CalcPrice es donde se almacen un historico del campo AvgPrice
solo coloca la fecha que deseas bajar el reporte , esta es la auditoria de stock , para sacar el costo solo tienes que dividir el valor acumulado entre la cantidad acumulada
FROM OINM Y WHERE Y.ItemCode = T2.ItemCode AND Y.Warehouse = T1.WhsCode AND Y.DocDate BETWEEN ‘01/01/2001’ AND ‘[%1]’) ‘STOCK’, T1.[WhsCode]‘BODEGA’, T1.WHSNAME’NOMBRE BODEGA’, (SELECT (SUM(Y.TransValue))
FROM OINM Y WHERE Y.ItemCode = T2.ItemCode AND Y.Warehouse = T1.WhsCode AND Y.DocDate BETWEEN ‘01/01/2001’ AND ‘[%1]’)‘Valor Acumulado’
FROM OITW T0
INNER JOIN OWHS T1 ON T0.WhsCode = T1.WhsCode
INNER JOIN OITM T2 ON T0.ItemCode = T2.ItemCode
INNER JOIN OMRC T3 ON T2.FIRMCODE=T3.FIRMCODE
WHERE (SELECT (SUM(Y.InQty)-SUM(Y.OutQty)) FROM OINM Y WHERE Y.ItemCode = T2.ItemCode AND Y.Warehouse = T1.WhsCode AND Y.DocDate BETWEEN ‘01/01/2001’ AND ‘[%1]’) != ‘0’
Estimados, la consulta esta correcta, pero al ejecutar la consulta y validarlo con el reporte SAP Auditoria de Stock, algunos datos no coinciden, como por ejemplo los TransType=18 no se muestran en el reporte de auditaría de Stock, consulta, que registros debería considerar para obtener el último PPP (AvgPrice).