一般来说,在大多数情况下,我们使用(FOR ALL ENTRIES IN 内表) 去取数
比如说
IF LT_EKPO IS NOT INITIAL .
SELECT A~EBELN,
A~EBELP,
A~MENGE
INTO TABLE @DATA(LT_EKET)
FROM EKET AS A
FOR ALL ENTRIES IN @LT_EKPO
WHERE EBELN EQ @LT_EKPO-EBELN AND
EBELP EQ @LT_EKPO-EBELP.
ENDIF.
但是当我们要使用聚合函数时,就不可以使用FOR ALL ENTRIES IN了。
这个时候可以使用(INNER JOIN 内表),例如
IF LT_EKPO IS NOT INITIAL .
SELECT A~EBELN,
A~EBELP,
SUM( A~MENGE ) AS MENGE_ALL
FROM EKET AS A
INNER JOIN @LT_EKPO AS B ON A~EBELN = B~EBELN AND A~EBELP = B~EBELP
GROUP BY A~EBELN,A~EBELP
INTO TABLE @DATA(LT_EKET).
ENDIF.
OVER……