✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
LA SENTENCIA SELECT
Es una sentencia que se utiliza para acceder a las bases de datos.
INTO TABLE: Cláusula que se utiliza cuando el resultado de la consulta se guarda en una tabla interna.
APPENDING TABLE: Cláusula que se utiliza con la sentencia SELECT y produce que los registros de las tablas que seleccionan se añadan al final de la tabla interna SIN pisar los registros preexistentes en la tabla interna. Cuando se utiliza INTO, se eliminan TODAS las líneas existentes en la tabla.
· Se recomienda hacer CLEAR y REFRESH de la tabla interna antes de realizar la seleccion.
Si queremos obtener solo un campo de una tabla (y no todos como el ej. anterior), se deberá crear una tabla auxiliar con solo el campo que requerimos y alojarlo en el resultado de la consulta.
·Siempre después de un SELECT se debe preguntar por el SY-SUBRC para saber cómo proseguir.
SINGLE: Cláusula que se utiliza para obtener la primera ocurrencia de una tabla que cumpla las condiciones de la selección.
INTO CORRESPONDING FIELDS OF TABLE: Cláusula que se utiliza con la sentencia SELECT y es necesaria si queremos utilizar un área de trabajo distinta al área de trabajo de la tabla leída.
Ésta sentencia realiza la comparación de los campos teniendo en cuenta los tipos de los campos de cada tabla y la posición de cada uno de ellos. Por ej. si en la posición 1 se encuentra un campo de tipo CHAR de 4 posiciones, entonces en la misma posición de la otra tabla, también debe existir un campo de tipo CHAR de 4 posiciones para que la comparación sea correcta.
IN: Cláusula que se utiliza para los select-options en las condiciones de un SELECT
MAX: Cláusula que se utiliza para hallar el registro con el campo especificado de mayor valor numérico.
COUNT: Cláusula que se utiliza con la sentencia SELECT cuando se quiere obtener la cantidad de registros de una tabla SAP.
Cuando escribimos la sentencia SELECT es lo mismo para el compilador ABAP si colocamos primero la sección FROM y luego la sección INTO o al revés.
FOR ALL ENTRIES IN: Sentencia que nos permite especificar condiciones en tiempo de ejecución.
Es un formato especial de la sentencia WHERE que se utiliza para especificar condiciones en tiempo de ejecución. Se declara de la siguiente forma: FOR ALL ENTRIES IN WHERE.
Con esta variante, no se pueden usar en la condición las posiciones LIKE, BETWEEN e IN.
con FOR ALL ENTRIES lo que se hace es seleccionar todos los registros de la tabla ztabla_usuarios que se encuentran en la tabla interna ti_proveedores siendo el campo DNI sea igual en ambas tablas y almacenamos las coincidencias en una tabla interna ti_usuarios. Esto mismo se podría realizar recorriendo la tabla interna ti_proveedores con un LOOP y por cada registro de ésta tabla interna realizamos un SELECT a la tabla ztabla_usuarios. Hay que tener en cuenta la performance de los programas que realizamos ya que si la tabla interna ti_proveedores solo almacena 3 registros, entonces al ejecutar el programa estaríamos accediendo a la base de datos solo 3 veces. pero si almacena 100mil registros, estaríamos accediendo a la base de datos 100mil veces lo que produciría un tiempo de espera enorme. con la sentencia FOR ALL ENTRIES IN nos aseguramos de acceder una sola vez a la base de datos y evitamos tiempo de espera
LIKE: Sentencia que se utiliza para obtener todos los registros que cumplan con un patrón de texto en alguno de sus campos.
 
 
 
Sobre el autor
Publicación académica de Sabrina Soledad Rodriguez, en su ámbito de estudios para la Carrera Consultor ABAP.
Sabrina Soledad Rodriguez
Profesión: Consultor Sap Fi - Co - Bs - Argentina - Legajo: SQ30J
✒️Autor de: 55 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Sabrina Rodriguez