Otro Nuevo en ABAP
Hola soy recontra novato en SAP y por este motivo estoy repleto de dudasy por eso creo qeu los secaré de tanto preguntar.
Resulta qeu empece con los Reports y quiero hacer un report en el cual tengo que incluir varios datos de distintas tablas pero no se si todos esos campos los paso a una tabla interna o nesecito tantas tablas internar como tablas de SAP. En Cualquiera de los dos casos ¿Como sería el select? Gracias. |
bueno yo te diria q depende de la situación
ejemplo 1. si tengo una tabla a y deseo obtener la info de la tabla c pero antes debo obtener el dato de b para con eso dato completo busca a c entonces debere de cargar la informacion de la tabla a luego ir a la tabla b completar o guardalod en una tabla interna xx y luego ir a la tabla c. 2. la otra es simple obtener la informacion de la tabla a y la tabla b y volcarlo a tabla interna hago un join. |
un inner join, me podrias dar un peqeño ejemplo por favor
|
este es un inner join con varias tablas!!
SELECT MARA~MATNR MARA~BISMT MARA~MATKL MARA~MEINS MARA~MTART MAKT~MAKTX MARC~WERKS MBEW~BWKEY MBEW~LPLPR MBEW~STPRS MBEW~VERPR MBEW~VPLPR MBEW~ZPLPR MBEW~PEINH MARC~LOSGR MARA~FERTH INTO TABLE TI_DATA FROM MARA INNER JOIN MAKT ON MAKT~MATNR = MARA~MATNR INNER JOIN MARC ON MARC~MATNR = MAKT~MATNR INNER JOIN MBEW ON MBEW~MATNR = MARC~MATNR AND MBEW~BWKEY = MARC~WERKS WHERE MARA~MATNR IN S_MATNR AND MARA~MTART IN S_MTART AND MAKT~MAKTX IN S_MAKTX AND MARC~WERKS IN S_WERKS AND MBEW~STPRS IN S_STPRS AND MBEW~VERPR IN S_VERPR. |
La verdad no quiero ser canson con este tema pero alguien e puede explicar con mas calma este inner join la verdad no lo entiendo.
Gracias de Antemano |
Hola
Quer tal, bueno te comento que los innner join no son lo mas adecuado para hacer una consulta sobre SAP. Considera la mecanica de un inner join y considera la cantidad de datos que maneja un sistema SAP, el tiempo de consulta crece mounstruosamente al usar innner joins.
Es comun presentar informacion de varias tablas SAP en un reporte lo habitual es tener una tabla interna por cada tabla que consultes y manipules la informacion en memoria. La estructura de un SELEC es similar al SELECT SQL, aunque no es SQL. Para consultar la sintaxis del SELEC de SAP pulsa F1 sobre esta palabra reservada y automaticamente de mandara a la ayuda de SAP. Usa la transaccion ABAPDOCU ahi viene una serie de ejemplos de diferentes programas en done puede ver la estructura de un report. Chao |
Miralo que funciona!
Hola! yo tambien soy muy novato en esto, de hecho estaba buscando ejemplos pero al ver tu inquietud quise ver si podia colaborar con vos. Copialo y pegalo tal cual esta allí. Lo unico que tendrias que variar seria el nombre de report (que lo pones vos obviamente) cualquier cosa agregame y cambiamos info Suerte!
*REPORT zinnerj. TABLES: sflight, saplane. * Creo un registro 'reg' con dos tablas transparentes. DATA: BEGIN OF reg , * Para vinvular las dos tablas voy a usar el mandante * de cada una de ellas: *----------------------------------------------------- mdta TYPE sflight-mandt , mdtb TYPE saplane-mandt , *----------------------------------------------------- *Desde sflight traemos los sigtes campos: carr TYPE sflight-carrid , fech TYPE sflight-fldate , prec TYPE sflight-price , plan TYPE sflight-planetype , *y desde saplane: seam TYPE saplane-seatsmax , weit TYPE saplane-weight, END OF reg. *Ahora creamos la tabla interna 'ti': DATA: BEGIN OF ti OCCURS 0 . INCLUDE STRUCTURE reg . DATA END OF ti . *Y finalmente llenamos con un INNER JOIN nuestra tabla conbinada: * 1. Seleccionamos las dos tablas y desde donde las vinculamos. * el chirimbolito ~ es como decir tabla - campo, o sea .. eso * y se usan alias = f : sflight p : saplane, que se declaran debajo. SELECT f~mandt p~mandt * 2. Se volvaran a la tabla interna: INTO CORRESPONDING FIELDS OF TABLE ti * 3. Y aqui se muestran los famosos INNER JOIN, y los alias. FROM ( sflight AS f INNER JOIN saplane AS p ON f~mandt = p~mandt ). * una vez que hayas que hayas visto el programita "juga" con la * sentencia WHERE para ver formas de comportamiento de la tabla. * WHERE tabla-campo operador valor_campo ... . * Loopeamos la tabla interna para listar los datos: LOOP AT ti. WRITE: ti-mdta , ti-carr , ti-fech , ti-prec , ti-plan , ti-seam , ti-weit . ENDLOOP. |
Excelente explicacion de un inner join mi amigo, me ayudo bastante en entenderlo y tambien como soy nuevo en ABAP me ayudara bastante.
Para intercambiar info te dejo mi MSN: |
Inner Join
Hola soy otra nueva en abap y siguiendo este tema , tengo un tp pra hacer debo hacer un inner para vincular 2 tablas transparentes, se como se hace y la guardo en una tabla interna pero debo combinar ésto con una database (SE 11) creada por mi, es decir debo Hacer un Insert ztab from ???? y ahi viene el tema desde donde la inserto desde la tabla interna donde esta el join?:confused: Por favor qe alguien me conteste esto, despues creo que seguiré preguntando otras cosas.GRAciass!!!!:)
|
ES Facil, INSERT o MODIFY.
Hola.
Antes de nada un consejo. Si haces una consulta, intenta aclararlo lo mejor posible en el título, porque yo he entrado por curiosidad, pero no sabía que era para esta consulta. Tu pregunta es sencilla. insert: TABLAZ from table TABLA_INTERNA[]. modify: TABLAZ from table TABLA_INTERNA[]. Los dos puntos no son necesarios ( son para seguir poniendo más parametros a esa sentencia separandolos con comas ) El símbolo '[]' indica que cojo una tabla y no un wa (línea de cabecera). No es necesario porque ya lo indicamo en la sentencia 'FROM TABLE', es una manía mia. La diferencia entre el INSERT y el MODIFY: INSERT es más efectivo y lo más importante, INSERTA UN REGISTRO NUEVO, si la clave de ese registro existe, DA UN DUMP (error-terminación anormal del programa). MODIFY: Si el registro NO EXISTE (LA CLAVE), lo CREA, si EXISTE (un registro con la misma clave), LO MODIFICA. Nunca se hace esto en una tabla del sistema, o sea que NO EMPIECE por "Z" o "Y" (Habría que saber muy bien que datos se están modificando). Pulsa F1 con el cursor sobre la sentencia, para ver la ayuda en SAP. Te recomiendo hacer pruebas y mirar los resultados de los efectos |
Husos Horarios son GMT. La hora en este momento es 23:21:30. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web