重复记录读取到内部 Table

Duplicate record read to Internal Table

我的内部 table 显示时有双重记录,例如:开票凭证中有 10 个,但我的内部 table 中有 20 个。显示 MAKTX,其中将 SPEC-TEST 添加到重复值中。

SELECT * INTO CORRESPONDING FIELDS OF wa_alv_list
FROM VBRK
INNER JOIN VBRP ON VBRK~VBELN = VBRP~VBELN "BILLING DOCUMENTS (HEADER)
AND VBRK~VKORG = VBRP~VKORG_AUFT
INNER JOIN MAKT ON VBRP~MATNR = MAKT~MATNR
WHERE VBRK~VKORG = VKORG
AND VBRK~BUKRS = BUKRS
AND VBRK~FKDAT IN S_FKDAT
AND VBRP~WERKS IN S_WERKS
ORDER BY VBRK~FKDAT.

上面的sql是否导致错误?

您加入的是 MAKT(material 条短信),但没有语言限制。可以用两种语言的 materials 文本来解释双倍数量的条目。

你能给出wa_alv_list的定义吗?或者尝试添加 MAKT-LANGU(或 MAKT-SPRAS- 我不确定是哪一个)和 material 文本来检查您是否获得每种语言的条目。


我建议定义一个参数:

PARAMETERS: P_SPRAS like SY-LANGU OBLIGATORY DEFAULT SY-LANGU.

现在您可以在开始报告时select语言(例如使用 F4)。

SELECT * INTO CORRESPONDING FIELDS OF wa_alv_list
  FROM VBRK
  INNER JOIN VBRP ON VBRK~VBELN = VBRP~VBELN "BILLING DOCUMENTS (HEADER)
  AND VBRK~VKORG = VBRP~VKORG_AUFT
  INNER JOIN MAKT ON VBRP~MATNR = MAKT~MATNR
  WHERE VBRK~VKORG = VKORG
  AND VBRK~BUKRS = BUKRS
  AND VBRK~FKDAT IN S_FKDAT
  AND VBRP~WERKS IN S_WERKS
  and MAKT~SPRAS = p_SPRAS  "<---Added
  ORDER BY VBRK~FKDAT.

一个警告:如果 material 没有 selected 语言的文本,则找不到条目。