✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
Sentencias bases de datos:
SELECT:
------------------------------------------------------------------------------------------------
Estructura:
SELECT <resultado> --> Campos que se desean recuperar
FROM <tabla> --> Tabla origen
INTO <target> --> Objeto destino
WHERE <condiciones>.
------------------------------------------------------------------------------------------------
Ejemplo:
SELECT *
FROM ztabla_usuarios
INTO TABLE ti_usuarios.
------------------------------------------------------------------------------------------------
Evitar siempre que se puede el uso de *.
En caso de existir registros en la tabla ztabla_usuarios, estos pisarán el contenido de ti_usuarios.
Para conservar dichos datos, usar APPENDING TABLE en lugar de INTO TABLE.
Recomendable usar CLEAR y REFRESH en la tabla interna antes de realizar la selección.
Siempre después de un SELECT se debe preguntar por el SY-SUBRC para saber como proseguir.
------------------------------------------------------------------------------------------------
Si queremos obtener la primera ocurrencia en una búsqueda:
SELECT SINGLE *
FROM ztabla_usuario
INTO wa_usuarios
WHERE nombre_ape NE space.
------------------------------------------------------------------------------------------------
Si queremos guardar los datos obtenidos en una tabla interna que no tiene la misma estructura que la tabla origen usamos INTO CORRESPONDING FIELDS OF TABLE:
SELECT nombre_ape estado_usu
FROM ztabla_usuarios
INTO CORRESPONDING FIELDS OF TABLE ti_usuarios2
WHERE nombre_ape NE space AND estado_usu = 'A'.
------------------------------------------------------------------------------------------------
Si queremos hacer una selección en base a lo que los usuarios ingresan por pantalla:
SELECT *
FROM ztabla_usuarios
INTO TABLE ti_usuarios
WHERE nombre_ape = p_nomape (Parameter) AND estado_usu IN s_estado (Select-Options)
------------------------------------------------------------------------------------------------
Si queremos obtener, por ejemplo, el usuario activo con DNI mas alto, usamos MAX.
SELECT SINGLE MAX (dni)
FROM ztabla_usuarios
INTO v_dni
WHERE estado_usu = 'A'.
------------------------------------------------------------------------------------------------
Si queremos obtener, por ejemplo, la cantidad de usuarios con estado activo, usamos COUNT.
SELECT COUNT (*)
INTO v_activo
FROM ztabla_usuarios
WHERE estado_usu = 'A'.
------------------------------------------------------------------------------------------------
Si queremos obtener, por ejemplo, todos los registros que existan en una tabla interna cargada con datos, usamos FOR ALL ENTRIES IN:
SELECT *
FROM ztabla_usuarios
INTO ti_usuarios
FOR ALL ENTRIES IN ti_proveedores
WHERE dni = ti_proveedores-dni.
------------------------------------------------------------------------------------------------
Si queremos obtener, por ejemplo, los registros que cumplan un patrón de texto, usamos LIKE:
SELECT *
FROM z_tabla_usuarios
INTO TABLE ti_usuarios
WHERE nombre_ape LIKE 'A%'.
 
 
 
Sobre el autor
Publicación académica de Martin Alejandro Goya, en su ámbito de estudios para la Carrera Consultor ABAP.
Martin Alejandro Goya
Profesión: Ingeniero en Computacion - Argentina - Legajo: CJ13E
✒️Autor de: 49 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Martin Goya