Foro de programación ABAP

SAP / ABAP => Programación ABAP => Mensaje iniciado por: Irua en 17 de Agosto de 2007, 04:33:01 pm

Título: AYUDA CON SELECT
Publicado por: Irua en 17 de Agosto de 2007, 04:33:01 pm
 :) Hola tengo el suiguiente codigo:

TABLES: ZTHR_USUA_EMPL,PA0001,PA0002,PA0032.

DATA: BEGIN OF T_DATA1 OCCURS 0,
BUKRS LIKE ZTHR_USUA_EMPL-BUKRS,
Z_PERNR LIKE ZTHR_USUA_EMPL-PERNR,
USUARIO LIKE ZTHR_USUA_EMPL-USUARIO,
FEC_ING LIKE ZTHR_USUA_EMPL-FEC_ING,
TIP_CTA LIKE ZTHR_USUA_EMPL-TIP_CTA,
FECHA LIKE ZTHR_USUA_EMPL-FECHA,
HORA LIKE ZTHR_USUA_EMPL-HORA,
P_ORGEH LIKE PA0001-ORGEH,
T_NACHN LIKE PA0002-NACHN,
T_VORNA LIKE PA0002-VORNA,
T_INICIAL TYPE C,
T_APELLIDO TYPE STRING,
T_CODIGO TYPE STRING,

END OF T_DATA1.

FORM OBTENER_DATOS.

SELECT BUKRS PERNR TIP_CTA
INTO T_DATA1
FROM ZTHR_USUA_EMPL
WHERE BUKRS IN S_TSOC
AND PERNR IN S_TEMPL.
APPEND T_DATA1.
ENDSELECT.


LOOP AT T_DATA1.
SELECT ORGEH PERNR
INTO T_DATA1
FROM PA0001
WHERE PERNR = S_TEMPL
and endda ='99991231'.
APPEND T_DATA1.
ENDSELECT.



SELECT NACHN PERNR VORNA
INTO T_DATA1
FROM PA0002
WHERE PERNR = T_DATA1-PERNR
and endda ='99991231'.
APPEND T_DATA1.
ENDSELECT.

SELECT PERNR GEBNR ZIMNR
INTO T_DATA1
FROM PA0032
WHERE PERNR = T_DATA1-Z_PERNR
and endda ='99991231'.
APPEND T_DATA1
ENDSELECT.
ENDLOOP.

ENDFORM.

 ??? COMO SERIAN LOS SELECT PARA BUSCAR LA BUSQUEDA DE VARIAS TABLAS CON UNA SOLA TABLA INTERNA Y CUAL SERIA LA ESTRUCTURA DEL LOOP PARAFORMAR EL SIGUIENTE REPORTE


WRITE:/1 T_DATA1-BUKRS,7 T_DATA1-Z_PERNR, 25 T_DATA1-T_NACHN ,33 T_DATA1-T_VORNA,50 T_PA0032-C_GEBNR, 65 T_DATA1-P_ORGEH.

MIL GRACIAS :-[
Título: Re: AYUDA CON SELECT
Publicado por: angelcruzg en 17 de Agosto de 2007, 07:12:15 pm
Buenas tardes.

Tienes que utilizar un select inner join para tener conexion con todas las tablas.

Como por ejemplo.

select  ZTHR_USUA_EMPL~BUKRS
          ZTHR_USUA_EMPL~PERNR
          ZTHR_USUA_EMPL~USUARIO
          ZTHR_USUA_EMPL~FEC_ING
          ZTHR_USUA_EMPL~TIP_CTA
          ZTHR_USUA_EMPL~FECHA
          ZTHR_USUA_EMPL~HORA
          PA0001~ORGEH
          PA0002~NACHN
          PA0002~VORNA
       into table ti_data1
       from ZTHR_USUA_EMPL inner join PA0001 ON
       ZTHR_USUA_EMPL~PERNR EQ PA0001~PERNR
      INNER JOIN PA0002 ON
      PA0001~PERNR EQ PA0002~PERNR
      and endda ='99991231'.


Con esto puedes buscar en un solo SELECT los campos de las 3 tablas.

Saludos.

Angel Cruz
Venezuela.
Título: Re: AYUDA CON SELECT
Publicado por: Irua en 17 de Agosto de 2007, 09:03:22 pm
Hola ya  incorpore el select al codigo, a pesar de que no me da ningun error solo me tra los datos de la tabla ZTHR_USUA_EMPL y no de las otras 2  :-\
Título: Re: AYUDA CON SELECT
Publicado por: Irua en 21 de Agosto de 2007, 02:28:13 pm
Gracias Angel ya funciona a la perfecccion, nuevamente muchas gracias  ;)