Abap 读取到内部表的重复记录

Abap 读取到内部表的重复记录,abap,opensql,Abap,Opensql,我的内部表在显示时有两条记录,例如:账单文档中有10条,但我的内部表中有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 JO

我的内部表在显示时有两条记录,例如:账单文档中有10条,但我的内部表中有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
(材料文本),但对语言没有限制。两倍数量的条目可以用两种语言的材料文本来解释

您能给出wa_alv_列表的定义吗?或者尝试添加
MAKT-LANGU
(或者
MAKT-SPRAS
-我不确定是哪一种)和一个材料文本,以检查您是否获得每种语言的条目


我建议定义一个参数:

PARAMETERS: P_SPRAS like SY-LANGU OBLIGATORY DEFAULT SY-LANGU.
现在,您可以在启动报告时选择语言(例如,使用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.
在wa_alv_列表的相应字段中选择*
从VBRK
VBRK~VBELN=VBRP~VBELN“账单单据(表头)上的内部联接VBRP
和VBRK~VKORG=VBRP~VKORG_AUFT
VBRP~MATNR=MAKT~MATNR上的内部连接MAKT
其中VBRK~VKORG=VKORG
和VBRK~BUKRS=BUKRS
和S_FKDAT中的VBRK~FKDAT
和VBRP~WERKS在S_-WERKS中

和MAKT~SPRAS=p_SPRAS“你加入的是
MAKT
(材料文本),但对语言没有限制。两倍数量的条目可以用两种语言的材料文本来解释

您能给出wa_alv_列表的定义吗?或者尝试添加
MAKT-LANGU
(或者
MAKT-SPRAS
-我不确定是哪一种)和一个材料文本,以检查您是否获得每种语言的条目


我建议定义一个参数:

PARAMETERS: P_SPRAS like SY-LANGU OBLIGATORY DEFAULT SY-LANGU.
现在,您可以在启动报告时选择语言(例如,使用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.
在wa_alv_列表的相应字段中选择*
从VBRK
VBRK~VBELN=VBRP~VBELN“账单单据(表头)上的内部联接VBRP
和VBRK~VKORG=VBRP~VKORG_AUFT
VBRP~MATNR=MAKT~MATNR上的内部连接MAKT
其中VBRK~VKORG=VKORG
和VBRK~BUKRS=BUKRS
和S_FKDAT中的VBRK~FKDAT
和VBRP~WERKS在S_-WERKS中

让它工作吧!系统选择语言为“Z”的记录。你能告诉我那是什么语言吗?@RamonC检查
SPRAS
T002
)的值表。这是为了客户保留,但是否还有其他方法可以设置为默认为一种语言,而不是为每个查询应用条件?这很有效!系统选择语言为“Z”的记录。你能告诉我那是什么语言吗?@RamonC检查
SPRAS
T002
)的值表。是用于客户保留的,但是否仍需要将默认设置为一种语言,而不是为每个查询应用条件?