#1
|
||||
|
||||
EXEC SQL con condicion IN
Buenas gente!
Una consulta netamente técnica de la que no puedo encontrarle la vuelta. Tengo que hacer una consulta sobre una tabla externa a SAP. A partir de N materiales y N centros, tengo que recuperar el stock de los mismos. Lo quiero hacer en un solo acceso/lectura (por un tema de performance). COMO hago? Estuve probando usar el IN, pero me da un error con el parámetro. Alguna idea?? Dejo el código debajo: Donde los parametros contienen: p_matnr = ('528', '960', '1014', '1045', '1046') p_werks = ('N002', 'N003', 'N004', 'N005', 'N006', 'N007') Ideas? Me estoy rompiendo la cabeza! Gracias!!! |
#2
|
|||
|
|||
Hola.
¿El contenido de los parámetros utilizados para filtrar en los IN están definidos como cadena literal? ¿O son rangos convencionales definidos en ABAP (ejemplo: tabla interna de SELECT-OPTION)? Un saludo. Iván |
#3
|
||||
|
||||
Buenas Vanesa! Los parámetros están definidos como literal, pasa que al ser "dinámicos" no se si eso estoy usando bien la condición IN. Yo hago WHERE material IN _matnr AND centro IN _werks donde en p_matnr concateno una cadena literal -> ('528', '960', '1014', '1045', '1046') y p_werks igual. No se si me falta algún espacio después del paréntesis, o que. No he trabajado mucho con SQL nativo en ABAP, por eso las dudas de como pasarle parámetros, y como recuperar la info de la query! Básicamente estoy queriendo recuperar muchos datos, para muchos parámetros de entrada. Alguna otra idea de como hacer esto?? Cualquier cosa ayudaría, siempre que sea UNA sola consulta, por la performance. GRACIAS! |
#4
|
||||
|
||||
Buenas,
Finalmente pude resolver la consulta. Estaba haciendo mal la misma, ya que estaba pasando todos mis datos en un solo parametro, y lo correcto es hacerlo en parametros separados. No se si le servira a alguien esto, pero lo que hice, fue crear varios parametros, y asignarle valor si los necesito, en caso que haga la consulta con los parametros vacios, solo me devolvera aquelos que si estan completos. El codigo final me quedo asi para el caso que YO estaba necesitando: De esta manera, puedo pasarle hasta 15 materiales y 15 centros, y la consulta funciona correctamente. Mi error inicial tenia que ver con el tipo de parametro que le estaba pasando a la consulta. Gracias y Saludos! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|