Buenos días a todos.
Hace unos días mis compañeros de trabajo me pidieron que en los documentos, sacados desde SAP a través de Crystal Reports, se mostrase toda la información de los códigos de lotes y sus correspondientes fechas de fabricación y caducidad por cada artículo.
Como lo único que une a Crystal Reports y a SAP entre sí es la base de datos, antes de crear el documento tenía que encontrar la forma de llegar a los lotes en cuestión desde el número de documento de entrega mediante una consulta SQL. He de confesar que no ha sido tan fácil como las otras veces cuando tenía que vincular o encontrar algo en la base de datos. Es más, ni siquiera puedo explicar con todo detalle la consulta que aparece a continuación pero, sea como fuese, lo he conseguido.
La consulta mencionada es la siguiente:
Espero que haya sido de ayuda a alguien y, si tenéis cualquier duda en cuanto a la consulta o si necesitáis más consultas SQL, decídmelo sin problemas.
Un saludo.
Hace unos días mis compañeros de trabajo me pidieron que en los documentos, sacados desde SAP a través de Crystal Reports, se mostrase toda la información de los códigos de lotes y sus correspondientes fechas de fabricación y caducidad por cada artículo.
Como lo único que une a Crystal Reports y a SAP entre sí es la base de datos, antes de crear el documento tenía que encontrar la forma de llegar a los lotes en cuestión desde el número de documento de entrega mediante una consulta SQL. He de confesar que no ha sido tan fácil como las otras veces cuando tenía que vincular o encontrar algo en la base de datos. Es más, ni siquiera puedo explicar con todo detalle la consulta que aparece a continuación pero, sea como fuese, lo he conseguido.
La consulta mencionada es la siguiente:
Código:
/* Declaración y definición de la variable "@entrega." */ DECLARE @entrega INT = 15****; /* Selección de los datos. */ SELECT T0.ItemCode AS 'Código de Artículo', T0.ItemName AS 'Nombre de Artículo', T0.CardCode AS 'Código de Cliente', T0.CardName AS 'Nombre de Cliente', T1.Quantity * -1 AS 'Cantidad de Artículo', T2.DistNumber AS 'Código de Lote', CONVERT(VARCHAR(10),T2.MnfDate,103) AS 'Fecha de Fabricación', CONVERT(VARCHAR(10),T2.ExpDate,103) AS 'Fecha de Caducidad' FROM OITL T0 INNER JOIN ITL1 T1 ON T0.LogEntry = T1.LogEntry INNER JOIN OBTN T2 ON T1.MdAbsEntry = T2.AbsEntry WHERE T0.DocEntry = (SELECT T0.DocEntry FROM ODLN T0 WHERE T0.DocNum = @entrega) AND T0.DocType = (SELECT T0.ObjType FROM ODLN T0 WHERE T0.DocNum = @entrega);
Un saludo.
Comentario