Tengo un artículo con control de números de serie y se producen entregas y devoluciones del mismo a lo largo del tiempo. Adjunto imagen de la lista de movientos.
Pretendo obtener con una consulta sql la última línea que se visualiza, o sea el último movimiento que ha registrado, pero no logro obtenerlo.
Estoy trabajando en esta consulta SQL:
SELECT SRI1.ItemCode, SRI1.SysSerial, SRI1.BaseType, SRI1.BaseEntry, SRI1.BaseNum, SRI1.DocDate, SRI1.CardCode, SRI1.CardName, SRI1.Direction,
OSRN.AbsEntry, OSRN.SysNumber, OSRN.DistNumber, OSRN.MnfSerial, OSRN.LotNumber, OSRN.InDate, OSRN.ExpDate
FROM SRI1
inner join OSRN on SRI1.SysSerial=OSRN.SysNumber
WHERE SRI1.ItemCode ='47' and OSRN.DistNumber='5342837371241010'
La idea además es generar un listado con todos los números de serie y su último movimiento, que en este caso voy filtrando un número para reducir el tiempo de ejecución y análisis.
Un saludo y gracias anticipadas a quien pueda aportar algo.
Tendrias que compara el maximo numero de linea de la SRI1, algo asi:
Select a,b,c,d
from OSRN
inner join
SRI 1 T0
on OSRN.ItemCode=T0.ItemCode and OSRN.SysNumber=T0.SysSerial
inner join
(
select ItemCode, SysSerial, max(LineNum) as LineNum from SRI1 group by ItemCode, SysSerial
) T1
on T0.ItemCode=T1.ItemCode and T0.SysSerial=T1.SysSerial and T0.LineNum=T1.LineNum
where OSRI.ItemCode='XX' and OSRI.IntrSerial='YY'
Buen día, con el siguiente FROM obtienes el dato, LogEntry es un entero que incrementa con cada nuevo registro de lote o serie y es único por cada linea en documentos.
SELECT
/*
Seleccionams de T0, T1 y T2 los datos que necesitamos
*/
*
FROM
OITL T0
INNER JOIN ITL1 T1 ON T0.LogEntry = T1.LogEntry
INNER JOIN OSRN T2 ON T1.ItemCode = T2.ItemCode AND T1.SysNumber = T2.SysNumber
INNER JOIN
(
SELECT
MAX(A0.LogEntry) [LogEntry] --Mayor LogEntry por cada combinacion Articulo-Serie
,A0.ItemCode
,A1.SysNumber
FROM
OITL A0
INNER JOIN ITL1 A1 ON A0.LogEntry = A1.LogEntry
INNER JOIN OSRN A2 ON A1.ItemCode = A2.ItemCode AND A1.SysNumber = A2.SysNumber
WHERE
A0.ManagedBy = 10000045
GROUP BY
A0.ItemCode
,A1.SysNumber
) T3 ON T0.LogEntry = T3.LogEntry