#1
|
|||
|
|||
Ayuda Please
Favor como puedo en un solo select llamar campos de diferentes tablas con un solo where
ejemplo: FORM OBTENER_DATOS. SELECT BUKRS PERNR INTO T_DATA1 FROM ZTHR_USUA_EMPL WHERE BUKRS IN S_TSOC AND PERNR IN S_TEMPL. APPEND T_DATA1. ENDSELECT. SELECT ORGEH BUKRS INTO T_PA0001 FROM PA0001 WHERE BUKRS IN S_TSOC. APPEND T_PA0001. ENDSELECT. SELECT NACHN PERNR VORNA INTO T_PA0002 FROM PA0002 WHERE PERNR IN S_TEMPL. APPEND T_PA0002. ENDSELECT. SELECT GEBNR ZIMNR PERNR INTO T_PA0032 FROM PA0032 WHERE PERNR IN S_TEMPL. APPEND T_PA0032. ENDSELECT. LOOP AT T_DATA1. CONTADOR = SY-TABIX. Gracias |
#2
|
|||
|
|||
Aqui tienes un ejemplo de como acceder a dos tablas en un mismo select:
SELECT SINGLE * FROM KNA1 as k1 WHERE STCD1 = codigo and exists ( SELECT * FROM KNB1 WHERE KUNNR = k1~KUNNR and BUKRS = sociedad and SPERR = '' ). espero te sirva, saludos. |
#3
|
||||
|
||||
Puedes hacer inner join en tu consulta, siempre y cuando tengas campos relacionados entre las tablas....
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#4
|
||||
|
||||
Un ejemplo seria el siguiente...
Select tabla1~nombre tabla2~direccion into corresponding fields of table ti_resultado from tabla1 innjer join tabl12 on tabla1~kunnr = tabla2~kunnr where tabla1~kunnr = '0070000000'. Para hacer referencia a campos de las tablas con las que estas trabajando se usa el caracter " ~ " puesto que el guion " - " se usa para hacer referencia a algun campo de una tabla interna con la que estes trabajando para hacer alguna condicion en la clausula Where, te lo digo porque es muy comun que las personas que antes usaron el M SQL traten de hacer nu inner join y cometan el error de querer hacer referencia a los campos mediante nombretabla-campo.
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#5
|
|||
|
|||
Mil gracias
|
#6
|
|||
|
|||
Hola...lo que dicen arriba es correcto...pero cuidado...recuerda que las tablas en SAP son GRRRRRRANDES....y un INNER JOIN te puede resultar muy lento...yo prefiero hacer un par de consultas por separado y unirlas usando un FOR ALL ENTRIES....hay dos cosas que trato de evitar en SAP...el SELECT--> ENDSELECT y EL INNER JOIN.
..Este ejemplo es super básico...pero puede servir SELECT carrid connid cityfrom cityto deptime arrtime airpfrom airpto distance distid FROM spfli INTO CORRESPONDING FIELDS OF TABLE i_spfli WHERE carrid IN scarrid. SELECT carrid carrname FROM scarr INTO CORRESPONDING FIELDS OF TABLE i_scarr FOR ALL ENTRIES IN i_spfli WHERE carrid EQ i_spfli-carrid. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|