wer kann mir Folgendes erklären? Es geht um ein SELECT statement was so aussieht :
SELECT * FROM qmma
FOR ALL ENTRIES IN it_qmanswer
WHERE mnkat EQ it_qmanswer-mnkat
AND mngrp EQ it_qmanswer-mngrp
AND mncod EQ it_qmanswer-mncod
AND qmnum = qmel-qmnum.
IF z_ppm_hd-adate IS INITIAL OR
z_ppm_hd-adate GT qmma-pster.
z_ppm_hd-adate = qmma-pster.
ENDIF.
ENDSELECT.
Und jetzt die Frage : Die Tabelle die mit ALL ENTRIES in Bezug genommen wird ist LEER !!
Dennoch wird der SELECT aber mit sy-subrc = 0 immer wieder durchlaufen - immer holt er erfolgreich einen neuen Satz heraus ...
Ich würde erwarten, dass der Select nicht ausgeführt wird weil die bezogene Tabelle leer ist ... klar man sollte das vorher checken - aber dennoch komisch - ODER ?
Enthält die interne Tabelle itab keine Einträge, so wird dies wie eine fehlende WHERE-Bedingung cond behandelt und es werden alle Zeilen (im aktuellen Mandanten) selektiert.