✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
La sentencia SELECT
Obtener todos los registros de la tabla ZTABLA_USUARIOS:
Donde TI_USUARIOS es una tabla interna del mismo tipo de la tabla ZTABLA_USUARIOS. El asterisco indica que se obtendrán todos los campos de la tabla. la cláusula INTO TABLE se utiliza cuando el resultado de la consulta se guarda en una tabla interna.
En caso de existir registros en la tabla ZTABLA_USUARIOS, estos pasarán el contenido de la tabla interna TI_USUARIOS. Si queramos conservar el contenido de la tabla interna TI_USUARIOS luego de reiteradas selecciones. En este caso tendríamos que usar la cláusula APPENDING TABLE en lugar de INTO TABLE.
Para obtener de todos los campos de la tabla ZTABLA_USUARIOS el campo DNI debemos
crear una tabla auxiliar solo con el campo DNI para alojar el resultado de la consulta.
Para obtener la primera ocurrencia de la tabla ZTABLA_USUARIOS donde se cumpla determinada condición se usar la cláusula SINGLE.
El resultado de la consulta es guardado en la estructura WA_USUARIOS que es del mismo tipo que la tabla ZTABLA_USUARIOS.
Hacer la misma consulta anterior pero necesitamos obtener solo el campo DNI entonces ya no sería necesaria la estructura WA_USUARIOS , guardaríamos el resultado en la variable V_DNI :
Para obtener de una tabla los registros que cumplan una condición y guardarlos en una tabla interna que no tiene la misma estructura que la tabla, entonces tenemos que usar la cláusula INTO CORRESPONDING FIELDS OF TABLE:
En el ejemplo anterior, la tabla interna TI_USUARIOS2 está compuesta por los campos NOMBRE_APE y ESTADO_USU. Supongamos que tenemos un reporte que tiene la pantalla de selección:
Donde Nombre y Apellido es el parameter P_NOMAPE y Estado Usuario es el select-options S_ESTADO. Si quisiéramos hacer una selección a la tabla ZTASLA_USUARIOS en base a lo que los usuarios ingresan por pantalla haríamos lo siguiente:
La cláusula IN es para los select-options en las condiciones de un select.
Obtener el usuario activo con DNl más alto con la cláusula MAX:
Obtener la cantidad de usuarios con estado = "activo", con la cláusula COUNT:
Obtener los registros que existan en una tabla interna cargada con datos, con la sentencia FOR ALL ENTRIES IN, permite especificar condiciones en tiempo de ejecución. Ejemplo:
Para obtener los registros que cumplan con un patrón de texto con LIKE :
 
 
 
Sobre el autor
Publicación académica de Pablo Galeana, en su ámbito de estudios para la Carrera Consultor ABAP.
Pablo Galeana
Profesión: Java-oracle-linux - Mexico - Legajo: XR73U
✒️Autor de: 57 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Pablo Galeana