Code: Alles auswählen.
SELECT t1~trucknr t1~charg t1~laufnr
t1~matnr t1~ebeln t1~ebelp
t1~menge_netto t1~meins t1~status
t1~j_3acomord t1~charge_neu t1~zqm_cut
t2~bldat t2~j_3asize t2~j_4kscat
FROM zqm_exws_eq45 AS t1
INNER JOIN ekbe AS t2
ON t1~matnr = t2~matnr
AND t1~charg = t2~charg
AND t1~ebeln = t2~ebeln
AND t1~ebelp = t2~ebelp
INTO CORRESPONDING FIELDS OF TABLE ct_eq45
FOR ALL ENTRIES IN ct_vers_eh
WHERE t1~trucknr = ct_vers_eh-trucknr
AND t1~matnr IN s_matnr
AND t1~charg IN s_charg
AND t1~ebeln IN s_ebeln
AND t1~status = 'W'
AND t2~bewtp = 'E'
AND t2~bldat IN s_bldat.Code: Alles auswählen.
SELECT trucknr charg laufnr
matnr ebeln ebelp
menge_netto meins status
j_3acomord charge_neu zqm_cut
lifnr_p etenr
FROM zqm_exws_eq45
INTO CORRESPONDING FIELDS OF TABLE ct_eq45
FOR ALL ENTRIES IN ct_vers_eh
WHERE trucknr = ct_vers_eh-trucknr
AND matnr IN s_matnr
AND charg IN s_charg
AND ebeln IN s_ebeln
AND status = 'W'.
IF sy-subrc = 0.
SELECT bldat j_3asize j_4kscat matnr charg
FROM ekbe
INTO TABLE lt_inter
FOR ALL ENTRIES IN ct_eq45
WHERE matnr = ct_eq45-matnr
AND charg = ct_eq45-charge_neu
AND bewtp = 'E'.
IF sy-subrc = 0.
SORT ct_eq45 BY matnr charg.
SORT lt_inter BY matnr charg.
LOOP AT ct_eq45 ASSIGNING <ls_eq45>.
READ TABLE lt_inter ASSIGNING <ls_inter> WITH KEY matnr = <ls_eq45>-matnr
charg = <ls_eq45>-charge_neu.
IF sy-subrc = 0.
<ls_eq45>-bldat = <ls_inter>-bldat.
<ls_eq45>-j_3asize = <ls_inter>-j_3asize.
<ls_eq45>-j_4kscat = <ls_inter>-j_4kscat.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.Code: Alles auswählen.
types:
begin of ts_select,
matnr type ekbe-matnr,
charge type ekbe-charge,
end of ts_select.
data:
lt_select type standard table of ts_select with default key.
field-symbols:
<ls_select> type ts_select.
SELECT trucknr charg laufnr
matnr ebeln ebelp
menge_netto meins status
j_3acomord charge_neu zqm_cut
lifnr_p etenr
FROM zqm_exws_eq45
INTO CORRESPONDING FIELDS OF TABLE ct_eq45
FOR ALL ENTRIES IN ct_vers_eh
WHERE trucknr = ct_vers_eh-trucknr
AND matnr IN s_matnr
AND charg IN s_charg
AND ebeln IN s_ebeln
AND status = 'W'.
loop at ct_eq45 assigning <ls_eq45>.
* War da nicht noch was mit CHARG in zqm_exws_eq45?
* append initial line to lt_select assigning <ls_select>.
* <ls_select>-matnr = <ls_eq45>-matnr.
* <ls_select>-charge = <ls_eq45>-charg.
append initial line to lt_select assigning <ls_select>.
<ls_select>-matnr = <ls_eq45>-matnr.
<ls_select>-charge_neu = <ls_eq45>-charge.
endloop.
sort lt_select.
delete adjacent duplicates of lt_select.
delete lt_select where charge is initial or matnr is initial.
if lt_select is not initial
SELECT bldat j_3asize j_4kscat matnr charg
FROM ekbe
INTO TABLE lt_inter
FOR ALL ENTRIES IN lt_select
WHERE matnr = lt_select-matnr
AND charg = lt_select-charge
AND bewtp = 'E'.
endif.