ABAP - Select en ABAP

 
Vista:

Select en ABAP

Publicado por Marlos Gomez (2 intervenciones) el 30/01/2013 16:47:11
Buenos dias

Necesito hacer una consulta que una de sus columna sea una varible, les muestro

MiVariable = 'Valor1'

Select MiVariable As ValorPK...
From XXXX
Into Corresponding Fields Of Table it_XXXX
Where ...

MiVariable = 'Valor2'

Select MiVariable As ValorPK...
From XXXX
Into Corresponding Fields Of Table it_XXXX
Where ...

en cada select el valor de la columna ValorPK debe ser el valor de la variable que asigne antes de ejecutar la consulta, alguien me podria por favor decir o darme algun link donde puede ver como se hace.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Select en ABAP

Publicado por Alejandro (226 intervenciones) el 13/04/2023 18:56:23
Para hacer lo que estás buscando, necesitas usar la sentencia dinámica "EXEC SQL". Esta sentencia te permite construir una cadena de texto que representa la consulta SQL que quieres ejecutar, y luego ejecutarla en tiempo de ejecución.

Aquí te muestro un ejemplo de cómo podrías hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
DATA: lv_var TYPE char50 VALUE 'Valor1',
lv_sql TYPE string,
lt_resultado TYPE TABLE OF xxxx.
 
lv_sql = |SELECT { lv_var } AS ValorPK FROM XXXX WHERE ...|.
EXEC SQL PERFORMING RETURN_TABLE.
APPEND RETURNED_TABLE TO lt_resultado.
ENDEXEC.
 
lv_var = 'Valor2'.
lv_sql = |SELECT { lv_var } AS ValorPK FROM XXXX WHERE ...|.
EXEC SQL PERFORMING RETURN_TABLE.
APPEND RETURNED_TABLE TO lt_resultado.
ENDEXEC.

Donde "xxxx" es la tabla de la que quieres obtener los datos, "RETURNED_TABLE" es una tabla dinámica que usas para recibir los resultados, y "WHERE ..." es la condición de selección que necesitas.

Espero que esto te sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar