PDA

Ver la Versión Completa : Ayuda Con Select


Irua
16/08/07, 19:31:16
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

tomasm
16/08/07, 22:00:28
Una alternativa, que funciona relativamente bien en consonancia con el esfuerzo realizado para conseguirla.

Usar las transacciones SQ01 y SQ02 (Generador de querys de SAP)

Crear la query deseada y fisgar en el código generado.

Que trabaje SAP !!!!

Saludos !!! :D

Irua
17/08/07, 18:59:53
Tengo el siguiente select pero no me trae los datos solo los de la tabla ZTHR_USUA_EMPL


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 t_data1
from ZTHR_USUA_EMPL inner join PA0001 ON
ZTHR_USUA_EMPL~PERNR = PA0001~PERNR
and PA0001~endda ='99991231'
INNER JOIN PA0002 ON
ZTHR_USUA_EMPL~PERNR = PA0002~PERNR
and PA0002~endda ='99991231'.


Cual seria el error de sintaxis

gracias

Sereniv
30/08/07, 09:53:57
Buenas, no sé si te llegará tarde, pero creo que podría ser, en vez de hacer and PA0001~endda ='99991231' y and PA0002~endda ='99991231' en donde los haces, ponerle un where al final del todo que tenga esas dos condiciones:
...
where PA0001~endda ='99991231'
and and PA0002~endda ='99991231'.