Como ha notado en los ejemplos anteriores, la cláusula INTO fue colocada después de las otras cláusulas. Esto no siempre fue así. Desde la versión 7.40, SP08 en adelante, la cláusula INTO debe ser utilizada después de las otras cláusulas de una instrucción SELECT. Las adiciones UP TO n ROWS, BYPASSING BUFFER y CONNECTION no se tratan como cláusulas y se deben colocar después de la cláusula INTO.
La razón de este cambio es que la cláusula INTO no es parte del estándar SQL, sino que define la interfaz de datos entre SQL y ABAP. Para habilitar futuras mejoras en la parte SQL de Open SQL (por ejemplo, UNION) la cláusula INTO debe eliminarse de la parte SQL.
El siguiente ejemplo realiza una lectura con INNER JOIN implementando el orden correcto de las cláusulas:
SELECT FROM bkpf AS header
INNER JOIN bseg AS item ON header~bukrs EQ item~bukrs
AND header~belnr EQ item~belnr
AND header~gjahr EQ item~gjahr
FIELDS header~bukrs,
header~gjahr,
header~belnr,
item~*
WHERE header~bukrs EQ @gv_soc
AND header~gjahr EQ @gv_eje
ORDER BY header~belnr
INTO TABLE @DATA(gt_acc_docs)
UP TO 10 ROWS.
IF sy-subrc EQ 0.
READ TABLE gt_acc_docs INTO DATA(gs_acc_docs) INDEX 1.
IF sy–subrc EQ 0.
cl_demo_output=>display( gs_acc_docs-item ).
ENDIF.
ENDIF.