Funcion para tabla
Gracias por responder lo sucedido es lo siguiente, recien me pidieron en el trabajo modificar la siguiente consulta:
SELECT coep~belnr coep~buzei coep~vrgng cobk~budat coep~objnr coep~wkgbtr coep~mbgbtr coep~matnr cobk~refbn cobk~aworg coep~meinb cobk~awtypcoep~perio coep~gjahr coep~wrttp coep~kstar coep~parob coep~uspob coep~beknz coep~werks coep~wogbtr coep~owaer coep~megbtr
INTO CORRESPONDING FIELDS OF TABLE ti_cobk_coep3
FROM coep
INNER JOIN cobk ON coep~mandt = cobk~mandt AND coep~kokrs = cobk~k okrs AND coep~belnr = cobk~belnr
WHERE cobk~budat IN so_budat AND
coep~kokrs EQ 'GAND' AND
coep~wrttp EQ '04' AND
coep~lednr EQ '00' AND
coep~objnr IN r_objnr AND
coep~vrgng NE 'KOAO'.
Averiguando y ayudado por otros amigos modifique la consulta a esto:
SELECT mandt kokrs belnr buzei perio wogbtr wkgbtr megbtr mbgbtr lednr objnr gjahr wrttp kstar
vrgng parob uspob beknz owaer meinb werks matnr
FROM COEP
INTO TABLE ti_coep
WHERE objnr IN r_objnr AND
kokrs EQ 'GAND' AND
wrttp EQ '04' AND
lednr EQ '00' AND
vrgng NE 'KOAO'.
NOTA: AWORG NO EXISTE,
SORT ti_coep BY mandt kokrs belnr.
DELETE ADJACENT DUPLICATES FROM ti_coep COMPARING mandt kokrs belnr.
SELECT mandt kokrs belnr budat awtyp aworg
FROM COBK
INTO TABLE ti_cobk
FOR ALL ENTRIES IN ti_coep
WHERE budat IN so_budat and
kokrs EQ 'GAND'.
SORT ti_cobk BY mandt kokrs belnr.
LOOP AT ti_coep into st_coep.
READ TABLE INTO ti_cobk WITH KEY mandt = st_cobk-mandt and st_cobk-kokrs and
st_cobk-belnr binary search.
IF sy-subrc = 0.
MOVE-CORRESPONDING st_cobk to st_coep.
APPEND st_coep to ti_coep.
ENDIF.
IF sy-subrc = 0.
MOVE-CORRESPONDING st_coepto st_cobk.
APPEND st_cobk to ti_cobk.
ENDIF.
ENDLOOP.
Probe la consulta pero aun no corre el programa, tambien me indicaron que seria bueno utilizar funciones.
Es por eso que recurro a ustedes expertos, y les pregunto si la consulta que modifique esta bien hecha, que le falta, y si habria alguna funcion que pueda reemplazarla.
Muchas gracias por su atención.
|