cancel
Showing results for 
Search instead for 
Did you mean: 

Consulta query informe conjunto cliente individual Pedido, Entrega, Cantidades

Former Member
0 Kudos

Hola buenos días.

¿Me podríais echar una mano por favor?

Mañana tengo auditoria de calidad y nos han solicitado que saquemos informes de cada cliente individual, de que articulo entró en el pedido, fecha de entrada, cantidades que entraron y que se entregó (con sus cantidades) y cuando. Tengo esta consulta en el manager pero me reporta todos los clientes y yo lo que necesito es tipificar el cliente en concreto y no una lista en que me salgan todos englobados. Van a solicitarmelo de los clientes que tienen productos ecológicos.

SELECT distinct T0.ItemCode,T0.CardName,T0.ItemName ,T0.DocDate ,T0.DocType ,T0.DocNum as [Nº ALBARAN], T0.LocCode as [Cod. Almacén] ,t4.DistNumber as [Nº Lote], T1.Quantity ,T5.CalcPrice as [Price],

Tipo= CASE T0.[DocType]

WHEN  '59 ' Then 'Entrada'

WHEN  '15 ' Then 'Salida'

Else 'Otros'

End

FROM  [OITL] T0 

          INNER  JOIN [ITL1] T1  ON  T1.[LogEntry] = T0.[LogEntry] 

          INNER JOIN  OBTN T4 on T1.MdAbsEntry=T4.AbsEntry

          INNER  JOIN [OITM] T2  ON  T2.[ItemCode] = T0.[ItemCode]   

          Inner JOin OINM T5 on T0.ItemCode =T5.ItemCode and T0.LocCode = T5.Warehouse  and T0.AppDocNum = T5.BASE_REF

Muchas gracias de antemano.

Un saludo!

Accepted Solutions (1)

Accepted Solutions (1)

Former Member

Hola buenos días.

Siento el retraso en contestar, ayer tuve auditoria. Al final conseguí enlazar las tablas, algo no estaba haciendo bien después de vuestros consejos me daba error en una "coma"...os dejo como quedó el query.  La tabla que arroja contiene articulo, interlocutor IC, artícluos, codigos de almacen, numero de albarán, cantidad que entra y sale, certificaciones de los productos Ecologicos.

SELECT distinct T0.ItemCode,T0.CardName,T0.ItemName ,T0.DocDate ,T0.DocType ,T0.DocNum as [Nº ALBARAN], T0.LocCode as [Cod. Almacén] ,t4.DistNumber as [Nº Lote], T1.Quantity,  T3.U_SEIECOE, T3.U_SEIECOC, T3.U_SEICALE, T3.U_SEITEOK,

Tipo= CASE T0.[DocType]

WHEN  '59 ' Then 'Entrada'

WHEN  '15 ' Then 'Salida'

Else 'Otros'

End

FROM OITL T0

INNER JOIN [ITL1] T1  ON  T1.[LogEntry] = T0.[LogEntry] 

INNER JOIN  OBTN T4 on T1.MdAbsEntry=T4.AbsEntry

INNER JOIN [OITM] T2  ON  T2.[ItemCode] = T0.[ItemCode]   

INNER JOIN ODLN T3  ON T3.[DocNum] = T0.[DocNum]

WHERE T0.ItemCode = [%0]

MUCHAS GRACIAS POR VUESTRA AYUDA!

Un saludo

Answers (3)

Answers (3)

former_member413321
Contributor
0 Kudos

Buenos días.

Llego tarde a la conversación, pero según lo que comentas los campos que estaban solicitados no pertenecen a la tabla T2, sino a tablas que no estan en tus tablas del FROM, (indicas que ORDR y OLDN), habria que hacerles el JOIN para incluir las tablas y poder consultar el campo en cuestion.

Former Member
0 Kudos

No soy capaz de corregirlo, que frustración.

David puedes pasarme el query para que me devuelva los campos por favor?.

SELECT distinct T0.U_SEIALB, T0.U_SEIECOC,  T0.U_SEIIDE, T0.U_SEIPRO, T1.ItemCode,T1.CardName,T0.ItemName ,T1.DocDate ,T1.DocType ,T1.DocNum as [Nº ALBARAN], T1.LocCode as [Cod. Almacén] ,t4.DistNumber as [Nº Lote], T1.Quantity,



Muchas gracias de antemano.

former_member204202
Active Participant
0 Kudos

Ok. si gustas veamoslo remoto sera mas rapido. Tienes teamviewer??. Luego de solucionarlo lo posteas aca para dar por resuelto el caso ok.

Saludos

javier_facessantos
Contributor
0 Kudos

Hola Pablo

El problema es que es un query que además de campos del sistema tiene UDFs, con lo cual correr ese query en nuestro sistema no va a servir de mucho, pues va a dar siempre error aunque esté bien construida dado que esos campos no existen en nuestro sistema.

Me temo que si no averiguas la tabla/s donde están ubicados esos UDF no te vamos a poder ser de mucha ayuda.

Un saludo

javier_facessantos
Contributor
0 Kudos

Hola Pablo

No estoy seguro de haberte entendido, pero si lo que quieres es que la consulta te permita indicar un cliente en concreto para que te devuelva información sólo de ese cliente, lo puedes hacer añadiendo la siguiente condición con parámetro al final de la consulta:

WHERE T0.CardName = [%0]

Un saludo

Former Member
0 Kudos

Hola Javier buenas tardes.

Muchas gracias por tu ayuda. Eso era lo que necesitaba, te lo agradezco mucho.

No me gustaría abusar de su ayuda pero me gustaría pedirle un favor, ¿serías tan amable de echarme una mano con el error del query? Me han solicitado que añada unos campos (los veras en negrita) nuevos pero creo que debe haber un error a la hora de emparejar tablas y no sé como hacer la INNER JOIN. Son campos que se rellenan en el pedido del cliente y en la entrega. Aparecen en la tabla ORDR (entrada) y los mismos en la ODLN (entrega).

SELECT distinct T0.ItemCode,T0.CardName,T0.ItemName ,T0.DocDate ,T0.DocType ,T0.DocNum as [Nº ALBARAN], T0.LocCode as [Cod. Almacén] ,t4.DistNumber as [Nº Lote], T1.Quantity,

T2.[U_SEICALE], T2.[U_SEIECOE],

Tipo= CASE T0.[DocType]

WHEN  '59 ' Then 'Entrada'

WHEN  '15 ' Then 'Salida'

Else 'Otros'

End

FROM  [OITL] T0 

          INNER  JOIN [ITL1] T1  ON  T1.[LogEntry] = T0.[LogEntry] 

          INNER JOIN  OBTN T4 on T1.MdAbsEntry=T4.AbsEntry

          INNER  JOIN [OITM] T2  ON  T2.[ItemCode] = T0.[ItemCode] 

Muchas gracias de antemano.

Un saludo

javier_facessantos
Contributor
0 Kudos

Hola Pablo

Sería de ayuda si indicaras el error concreto que te está dando al ejecutar la query.

Pero de todos modos viendo el código de la consulta, los campos que has añadido son UDF (campos definidos por el usuario) y has indicado que están en la tabla OITM. Posiblemente te esté dando error porque esos campos no se encuentran en esa tabla.

En el caso de que esos UDF no se encuentren en la OITM, pero sí en alguna de las otras tablas definidas en la consulta, simplemente tendrías que cambiar "T2" por el indicador de la tabla en la que se encuentren. Es decir que si por ejemplo están en la OITL, tendrías que llamar a los campos T0.[U_SEICALE] y T0.[U_SEIECOE].

Sin embargo, si esos campos no están ubicados en ninguna de las 4 tablas que aparecen definidas en tu consulta, tendrías que encontrar en que tabla se encuentrar e inclluirla en tu consulta como T5 o T3 que no está siendo usado.  

Un saludo

javier_facessantos
Contributor
0 Kudos

Hola Pablo de nuevo

Otra cosa que veo es que en el caso que esos UDF no estén en la OITM, es innecesario incluir esta tabla en la consulta, dado que no estarías pidiendo que te muestre ninguno de sus campos, ni la estás utilizando en ninguna condición.

Un saludo

former_member204202
Active Participant
0 Kudos

Hola,

Javier me leiste la mente jeje, bueno como dice el compañero dinos cual es el error para poder apoyarte mas. Te recomiendo que si no sabes de donde son tus campos UDF vallas al menú Visualizar==>Informacion de Sistema (activalo) (met. abre. ctrl+shif+i)luego pasa el puntero del mouse por encima de tu campo y te dara la informacion en las barras de info SAP. Te dejo una imagen de ejemplo.

Saludos.

Former Member
0 Kudos

Ya no sé que hacer. Os agradecería que me echarais una mano. este es el error que me reporta:

" Invalid comun name U_SEICALE"

El query:

SELECT distinct T0.U_SEIALB, T0.U_SEIIDE, T0.U_SEIPRO, T1.ItemCode,T1.CardName,T0.ItemName ,T1.DocDate ,T1.DocType ,T1.DocNum as [Nº ALBARAN], T1.LocCode as [Cod. Almacén] ,t4.DistNumber as [Nº Lote], T1.Quantity,

Tipo= CASE T1.[DocType]

WHEN  '59 ' Then 'Entrada'

WHEN  '15 ' Then 'Salida'

Else 'Otros'

End

FROM ORDR T0, [OITL] T1

          INNER  JOIN [ITL1] T1  ON  T1.[LogEntry] = T1.[LogEntry]

          INNER JOIN  OBTN T4 on T1.MdAbsEntry=T4.AbsEntry

          INNER  JOIN [OITM] T2  ON  T2.[ItemCode] = T1.[ItemCode]

WHERE T0.ItemCode = [%0]

Gracias

former_member204202
Active Participant
0 Kudos

Ok el error es por lo que te comentamos, tu campo de Usuario no esta creado en la OITL, has lo que te indique pasa el mouse sobre ese campo y ve que tabla te refiere.

Saludos

javier_facessantos
Contributor
0 Kudos

Hola Pablo

En realidad es un poco raro, porque en el error te está indicando que no encuentra el campo U_SEICALE en donde le has dicho que debería estar. Sin embargo, no stoy viendo ese campo en la nueva consulta que indicas ahora. ¿Puede que ese sea el error que te estaba mostrando con la consulta tal y como la tenías antes? Lo normal es que si te sigue mostrando ese error con la consulta tal y como la tienes ahora sea para alguno de los otros UDF:

T0.U_SEIALB, T0.U_SEIIDE, T0.U_SEIPRO

Sea como sea, lo mejor es que hagas como te indica David y pases el ratón por encima de los campo/s que deseas incluir, habiendo activado previamente la información del sistema tal y como te indicaba también David en su otro mensaje. De esta manera sabrás la tabla a la que tienes que apuntar para obtener la info que necesitas.

Un saludo