Code: Alles auswählen.
Tabelle aus dem Dictionary in interne Tabelle laden.
SELECT prps~pbukr prps~posid prps~objnr prps~prart jest~stat
FROM prps JOIN jest on prps~objnr = jest~objnr
into CORRESPONDING FIELDS OF TABLE lt_xpa
WHERE prps~pbukr = wa_itab-pbukr AND
jest~inact <> 'X' AND
jest~stat = 'I0002' OR
jest~stat = 'I0045'.
Code: Alles auswählen.
SELECT prps~pbukr prps~posid prps~objnr prps~prart jest~stat
FROM prps JOIN jest on prps~objnr = jest~objnr
into CORRESPONDING FIELDS OF TABLE lt_xpa
WHERE prps~pbukr = wa_itab-pbukr AND
jest~inact <> 'X' AND
( jest~stat = 'I0002' OR
jest~stat = 'I0045' ).
Code: Alles auswählen.
SELECT prps~pbukr prps~posid prps~objnr prps~prart jest~stat
FROM prps JOIN jest on prps~objnr = jest~objnr
into CORRESPONDING FIELDS OF TABLE lt_xpa
WHERE ( prps~pbukr = wa_itab-pbukr AND
jest~inact <> 'X' AND
jest~stat = 'I0002' ) OR
jest~stat = 'I0045' .
BTW: Im Prinzip funktioniert OR für meine Zwecke. Da er ja abbricht, sobald ein "true" Wert gefunden wurde. Exklusives oder um beide Werte zu überprüfen scheint es in ABAP nicht zu geben, bzw. nur bei der Bitshift-Logik, oder?km216 hat geschrieben:Liegt an der Abfrage, setz den OR-Teil mal in Klammern, das sollte es meiner Ansicht nach sein.
Also so dann:
...
[/code]
Anderfalls selektiert er dir nämlich einmal alle Sätze, wo gilt:
prps~pbukr = wa_itab-pbukr AND
jest~inact <> 'X' AND
jest~stat = 'I0002'
UND alle Sätze wo gilt jest~stat = 'I0045' .
Gruß
Da brauchts keinen hier - SAP kann das ganz gut selber: http://help.sap.com/abapdocu_70/en/ABENLOGEXP_BOOLE.htmkm216 hat geschrieben:[...]
Aber warum das jetzt so ist, kann ich auch nicht ganz genau erklären... Aber ich bin sicher, hier gibt es Leute, die das können