PROMO AGOSTO en CVOSOFT United States Of America: 💎Calidad, 🔥Bonificaciones, 🥶Precios Congelados y MÁS!

 X 

✒️ABAP El lenguaje SQL y la sentencia SELECT

ABAP El lenguaje SQL y la sentencia SELECT

ABAP El lenguaje SQL y la sentencia SELECT

iNSTRUCCIONES SQL

Sentencia SQL

conjunto de sentencias que se utilizan para accedera a las bases de datos.

La sintaxis es:

SELECT <resultado> "En resultado se colocan los campos que se quieren recuperar, si dejamos un asterisco recuperamos todos los campos.

FROM <tabla> " Tabla es la tabla origen donde se sacaran los datos

INTO <target> " Target es el destino donde será alojados los datos

WHERE <condiciones> "Condiciones de la búsqueda

Para obtener todos los registros de la tabla usuarios seria lo siguiente

SELECT *

FROM ZTABLA_USUARIOS

INTO TABLE ti_usuarios.

Donde TI_USUARIOS es una tabla interna del mismo tipo de la tabla ZTABLA_USUARIOS. en caso de existir registros de la tabla ZTABLA_USUARIOS en la tabla interna estos se pisarán. puede que queramos conservar el contenido de la tabla TI_USUARIOS en esta caso tendriamos que usar la cláusula APPENDING TABLE en lugar de INTO TABLE.

Recomendación: es hacer CLEAR Y REFRESH de la tabla interna antes de realizar la selección.

Si quisieramos obtener el campo DNI de la tabla deberiamos crear una tabla auziliar solo con el campo DNI para alojar el resultado de la consulta.

Ejemplo:

SELECT dni

FROM ztabla_usuarios

INTO TABLE ti_usuarios-aux.

Importante: Siempre despues de un SELECT se debe preguntar por el SY_SUBRC para saber como proseguir.

Si quisieramos obtener la primera ocurrencia de la ZTABLA_USUARIOS donde se cumpla determinada condicion debemos usar la clausula SINGLE

ejemplo

* Selecciono el primer registro que cumpla la condicion

CLEAR wa_usuarios.

SELECT SINGLE *

FROM ztabla_usuarios

INTO wa_usuarios

WHERE nombre_ape NE space.

El resultado se guardará en la estructura wa_usuarios que es del mismo tipo que la tabla ztabla_usuarios

SINGLE ; es una clausula de SELECT prduce que solo se seleccione la primera ocurrencia que cumpla las condiciones de seleccion.

Ahora si quiesieromhacer la misma consulta pero solo obtener el campo DNI entonces no necesitamos la estructura wa-usuarios sino que se guardaria el resultado en una variable v-dni

* Selecciono el primer registro que cumpla la condicion

CLEAR v_dni.

SELECT SINGLE dni

FROM ztabla_usuarios

INTO v_dni

WHERE nombre_ape NE space.

Si quisieramos obtener los registros que cumplan una condicion pero queremos guardarlos en una abla interna que no tiene la misma estructura que la tabla, entonces tenemos que usar la cláusula INTO CORRESPONDING FIELDS OF TABLE

* Selecciono el primer registro que cumpla la condicion

SELECT nombre_ape estado_usu

FROM ztabla_usuarios

INTO CORRESPONDIG FIELDS OF TABLE ti_usuarios2

WHERE nombre_ape NE space

AND estado_usu = 'A' .

Audio tips; la posición del campo en la tabla ZTABLA_USUARIOS está en pos 1 y es un tipo char de 4 ,en la tabla interna ti_usuarios2 tambien tendrá la misma posción y tipo de dato.

En el ejemplo anterior la tabla TI_USUARIOS2 está compuesta por los campos nombre-ape y estado_usu.

Suponemos que tenemos un reporte que tiene la pantalla de seleccion;

Nombre y Apellido es el parameter y

Estado Usuario es el select options S_ESTADO. Si quisieramos haer una seleccion a la tabla en base a lo que los usuarios ingresan por pantalla hariamos lo siguiente:

* Selecciono los registeros que cumplan con los parámetros de pantalla

SELECT *

FROM ztabla_usuarios

INTO TABLE ti_usuarios

WHERE nombre_ape = p_nomape

AND estado_usu IN s_estado.

La clausula IN se utiliza para los select-options en las condiciones de un SELECT

Ahora si quisieramos obtener el usuario activo con DNI mas lato tendriamos que usar la clausula MAX

* Obtengo el usuario activo con DNI mas alto

SELECT SINGLE MAX (dni)

INTO v_dni

FROM ztabla_usuarios

WHERE estado_usu = 'A' .

AUDIO TIPS:

Cuando creemos la sentencia SELECT para el compilador ABAp si colocamos primero FROM y luego INTO o al revés.

Si quisieramos saber la cantidad de usuarios con estado ='activo" debemos usar la clausula COUNT;

Ejemplo

* Obtengo la cantidad de usuaruios activos

SELECT COUNT (*)

INTO v_activos

FROM ztabla_usuarios

WHERE estado_usu = 'A'.

Si quisieramos obtenerde una tabla para todos los registros que existan en una tabla interna cargada con datos, entonces usemos la sentencia FOR ALL ENTRIES IN que nos permite especificar condiciones en tiempo de ejecución.

Ejemplo

* Obtengo los registros de los usuarios que existan en la tabla interna TI_PROVEEDORES

SELECT *

INTO TABLE ti_usuarios

FROM ztabla_usuarios

FOR ALL ENTRIES IN ti_proveedores

WHERE dni = ti_Proveedores -dni.

Audio Tips:

Con FOR ALL ENTRIES lo que hacemos es seleccionar todos los registros de la tabla ztabla_usuarios que se encuentran en la tabla interna ti_proveedores siendo que el campo dni sea igual en ambas tabla y almacenamos las coincidencias en la tabla interna ti_usuarios. Esto mismo se podría realizar recorriendo la tabla interna ti_proveedores con un LOOP AT y por cada registro de esta tabla interna realizaríamos un SELECT a la tabla ztabla_usuarios, pero debemos tener en cuenta la performance de los programas que realizamos ya que si la tabla interna ti_proveedores almacena solo tres registros entonces al ejecutar nuestro programa estariamos accediendo a la base de datos solo tres veces, pero si la tabla interna ti_proveedores almacena cien mil registros entonces al ejecutar nuestro programa estariamos accediendo a la base de datos cien mil veces y esto produciría u tiempo de espera enorme. Para evitar estas situaciones nos aseguramos de acceder una sola vez a la base de datos usando FOR ALL ENTRIES.

Si quisieramos obtener todos los registros que cumplan con unpatrón de text en alguno de sus campos debemos utilizar la sentencia LIKE

Ejemplo

* Recupero los usuarios cuyo nombre empeice con "A"

SELECT *

FROM ztabla_usuarios

INTO TABLE ti_usuarios

WHERE nombre_ape LIKE 'A%'.


 

 

 


Sobre el autor

Publicación académica de Carlos Alberto Carreira, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Master

Carlos Alberto Carreira

Profesión: Consultor Técnico en Jde W.s. - Argentina - Legajo: KC15G

✒️Autor de: 92 Publicaciones Académicas

🎓Cursando Actualmente: Consultor ABAP Nivel Inicial

🎓Egresado de los módulos:

Certificación Académica de Carlos Carreira

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El lenguaje SQL y la sentencia SELECT" de la mano de nuestros alumnos.

SAP Master

SENTENCIA SELECT INTO TABLE se utiliza cuando el resultado de la consulta se guarda en una tabla interna simepre despues de un select se debe preguntar por el sy-subrc para saber como proseguir SENTENCIA SINGLE para obtener la primera ocurrencia de la tabla clausula in para select option FOR ALL ENTRIES IN es un formato especial de la sentencia where que se utiliza para especificar condiciones en tiempo de ejecucion no se pueden utilizar like between e in

Acceder a esta publicación

Creado y Compartido por: Andres Felipe Escobar Lopez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

La sentencia SELECT. SELECT: Sentencia ABAP que se utiliza para acceder a las bases de datos a SAP. Tabla interna: Es un objeto de datos que permite guardar en memoria grandes cantidades de registros de datos con la misma estructura. La cantidad de registros máxima esta relacionada con los límites especificados en la instalación del sistema. INTO TABLE: Cláusula ABAP que se utiliza con la sentencia SELECT y produce que los registros de las tablas que se seleccionan se ve la tabla interna que se especifica a continuación. APPENDING TABLE: Cláusula ABAP que se utiliza con la sentencia SELECT y produce que los registros de las tablas que se seleccionan se añadan al final de la tabla interna...

Acceder a esta publicación

Creado y Compartido por: Rafael Razo

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

SELECT: Sentencia ABAP que se utiliza para acceder a las BD. SINTAXIS: SELECT <CAMPOS A SELECCIONAR> FROM <TABLA DONDE SE REALIZARA RA BÚSQUEDA> INTO <DESTINO DE LOS DATOS> INTO TABLE <SE UTILIZA SI EL DESTINO DE LOS DATOS ES UNA TABLA INTERNA> WHERE <CONDICIONES DE LA BÚSQUEDA> APPENDING TABLE: SE UTILIZA CON EL SELECT PARA INDICAR QUE LOS DATOS SE DEBEN INGRESAR AL FINAL DE LA TABLA INTERNA Y NO SIN PISAR LOS YA EXISTENTES EN ELLA. SINGLE: ESTA CLAUSULA QUE SE UTILIZA CON EL SELECT PARA SELECCIONAR EL PRIMER REGISTRO QUE CUMPLA CON LAS CONDICIONES DE BÚSQUEDA. INTO CORRESPONDING FIELDS OF TABLE: CLAUSULA ABAP QUE SE UTILIZA CON UN SELECT Y ES NECESARIA SI QUEREMOS UTILIZAR UN ÁREA...

Acceder a esta publicación

Creado y Compartido por: Juan Santamaria Borja

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


1) SENTENCIA SELECT SELECT es la sentencia que se utiliza para leer los datos de una tabla de la BD. Sintaxis: SELECT <campos> FROM <tabla> INTO <target> where <condiciones>. Existen muchas cláusulas que se pueden utilizar en el SELECT: Si necesitamos que el resultado de la consulta se guarde en una tabla interna: SELECT * FROM ztabla_usuarios INTO TABLE ti_usuarios. Si necesitamos conservar el contenido de la tabla interna luego de reiteradas selecciones. SELECT * FROM ztabla_usuarios APPENDING TABLE ti_usuarios. Utilizar CLEAR y REFRESH a la tabla interna antes de la selección Si se desea obtener el campo DNI de todos los campos de la tabla...

Acceder a esta publicación

Creado y Compartido por: Maria Guadalupe Gonzalez Sanchez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

una sentencia peculiar de ABAP en el uso de tablas es: CORRESPONDING FIELDS OF TABLE, se utliza con la sentencia SELECT y es necesaria si se quiere usar un area de trabajo con diferente estructura a el area de trabajo de la tabla leida. La sentencia FOR ALL ENTRIES IN, es util para buscar las coincidencias de una tabla interna en una tabla base de datos

Acceder a esta publicación

Creado y Compartido por: Carolina Sanchez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

LA SENTENCIA SELECT: Sentencia que se usa para accesar a los datos. SELECT <resultado FROM <tabla> into <target> (es el destino donde serán alojados los datos). WHERE <conditios>. SELECT * FROM ztabla_usuarios INTO TABLE ti_usuarios. INTO TABLE (los registros seleccionados se colocan en la tabla interna). (el INTO puede ir antes o después del FROM). APPENDING TABLE (los registros seleccionados se colocan en la tabla interna PERO sin borrar los que ya se tenían almancenados). Es recomendable usar CLEAR y REFRESH de la tabla interna antes de realizar la selección. SINGLE (selecciona la primer ocurrencia de la consulta) es como traer el TOP en SQL, CLEAR wa_usuarios. SELECT SINGLE * FROM ztabla_usuarios...

Acceder a esta publicación

Creado y Compartido por: Gerardo De La Rosa Rivera

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Instrucciones SQL: La sentencia SELECT 1. La sentencia SELECT Se utiliza para acceder a la base de datos SELECT <campos> FROM <tabla > INTO <target> WHERE <condiciones> La cláusula INTO TABLE se utiliza cuando el resultado de la consulta se guarda en una tabla interna. Si queremos conservar el contenido de la tabla interna utilizamos la cláusula APPENDING TABLE en lugar de INTO TABLE y agrega los registros al final. Es recomendable hacer CLEAR y REFRESH de 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 quisiéramos obtener la primera ocurrencia de la tabla ZTABLA_USUARIOS donde se cumpla determinada...

Acceder a esta publicación

Creado y Compartido por: Pedro Alejandro Arroyo Gutierrez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Sentencias ABAP que se utilizan para acceder a la base de datos: SELECT <resultado> FROM <tabla> INTO TABLE <target> WHERE <condiciones>. Evitar el uso del * cuando solo se requiera obtener algunos campos de la tabla origen. Es una buena práctica. Es recomendable hacer CLEAR y REFRESH de la tabla interna antes de realizar la selección. Si necesitamos conservar el contenido de la tabla interna a la que haremos el SELECT ... INTO tablainterna tenemos que usar la cláusula APPENDING TABLE en lugar de INTO TABLE. APPENDING TABLE: cláusula que se usa con la sentencia SELECT y produce que los registros de las tablas que se seleccionan se añadan al final de la tabla interna sin pisar los registros...

Acceder a esta publicación

Creado y Compartido por: Jose Ignacio Rodini

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

1- La sentencia SELECT SELECT <resultado> "En resultado se colocan los campos que se quieren recuperar" FROM <tabla> "Es la tabla origen de donde se secan los datos" INTO <target> "Es el destino donde serán alojados los datos" WHERE <condiciones> "Condiciones de la búsqueda" Es recomendable hacer CLEAR y REFRESH de la tabla interna antes de realizar la selección. Otras clausulas: SINGLE: Para obtener la primera ocurrencia de una tabla. INTO CORRESPONDING FIELDS OF TABLE: Para obtener los registros de una tabla interna en una tabla que no tiene la misma estructura IN: Se utiliza para los select-options en...

Acceder a esta publicación

Creado y Compartido por: Calixto Gutiérrez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


CLEAR WA_USUARIOS. REFRESH TI_SFLIGHT. SENTENCIAS SELECT SELECT * FROM SFLIGHT INTO TABLE TI_SFLIGHT WHERE S_FLIGHT-FLIGHT ='001'. Si quisieramos obtener de una tabla los registros que cumplan una condicion pero queremos guardarlos en una tabla interna que no tiene la misma estructura que la tabla, entonces tenemos que usar la clausula INTO CORRESPONDING FIELDS OF TABLE. Se utiliza con un area de trabajo al area utilizada para leer la tabla, Realiza la comparacion de los campos teniendo en cuenta los tipos de los campos de cada tabla y la posicion de cada uno de ellos (ej: un campo de tipo char de 4 posiciones en cada tabla). La clausula IN se utiliza para los select-options en las condiciones de un select. ej: select * from ztabla_usuarios...

Acceder a esta publicación

Creado y Compartido por: Oscar Guillermo Rodriguez Villate / Disponibilidad Laboral: FullTime

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!