ABAP连接查询未在功能模块中返回数据

问题描述 投票:0回答:2

我是ABAP的新手。我已经创建了四个表(Z588B,Z588T,ZFINALTABLE),我想使用函数构建器中的sql进行填充。

[首先,我尝试加入这些表T588B,T588T,并收到此错误”“对于池表群集表和投影视图,不允许加入”。

因此,我创建了临时表来存储T588B,T588T表中的数据,因此我可以使用临时表Z588B,Z588T联接到所需的输出字段ZFINALTABLE中。

我能够用我需要的数据填充Z588B,Z588T,但是使用这些临时表的JOIN没有返回任何数据。

这是我所做的。

1)使用SE37“ Z_BAPI_TESTP_FM”创建的功能模块

2)在导入选项卡中,我定义了参数。

MANDT   TYPE    ZTESTPA30-MANDT   Client
USERG   TYPE    ZTESTPA30-USERG   User group

3)我使用se11创建的声明的临时表>

    Z588B   LIKE    Z588B   Temp Structure for T588B
    Z588T   LIKE    Z588T   Temp Structure for T588T
    Z582S   LIKE    Z582S   Temp Structure for T582S

ZFINALTABLE LIKE    Z588BTEST   Temp Structure for ZFINALTABLE

4)在源代码中输入了我的sql查询。

 FUNCTION Z_BAPI_TEST_FM.
    *"----------------------------------------------------------------------
    *"*"Local Interface:
    *"  IMPORTING
    *"     VALUE(MANDT) TYPE  ZTESTPA30-MANDT
    *"     VALUE(USERG) TYPE  ZTESTPA30-USERG
    *"  EXPORTING
    *"     VALUE(RETRUN) TYPE  BAPIRET2
    *"  TABLES
    *"      ZPA30 STRUCTURE  ZPA30
    *"      Z588B STRUCTURE  Z588B
    *"      Z588T STRUCTURE  Z588T
    *"      Z582S STRUCTURE  Z582S
    *"      Z588BTEST STRUCTURE  Z588BTEST
    *"----------------------------------------------------------------------

TABLES: Z588B, Z588T, ZFINALTABLE.

    select MANDT USERG MNTYP MENUE INFTY  INTO CORRESPONDING FIELDS OF TABLE Z588B from T588B CLIENT SPECIFIED
    WHERE MANDT = MANDT AND USERG = USERG AND MNTYP = 'I'.

    select MANDT SPRSL MNTYP MENUE DTEXT INTO CORRESPONDING FIELDS OF TABLE Z588T from T588T CLIENT SPECIFIED
    WHERE MANDT = MANDT AND MNTYP = 'I' AND SPRSL = 'EN'.

    Select a~MANDT AS MANDT  a~USERG AS USERG a~MNTYP AS MNTYP a~MENUE AS MENUE a~INFTY AS INFTY b~SPRSL AS SPRSL b~DTEXT As DTEXT
    INTO CORRESPONDING FIELDS OF TABLE ZFINALTABLE
    FROM Z588B  AS a LEFT JOIN Z588T AS b ON a~MNTYP = b~MNTYP.

ENDFUNCTION.

能够为给定的参数将数据加载到Z588B,Z588T上,但是具有联接的最终sql不会返回ZFINALTABLE表中的数据。

您能告诉我为什么最后一个使用JOIN的sql不返回ZFINALTABLE中的任何数据吗?

我是ABAP的新手。我创建了四个表(Z588B,Z588T,ZFINALTABLE),希望使用函数构建器中的sql进行填充。首先,我尝试加入这些表T588B,T588T,并获得此表...

sap abap
2个回答
0
投票

如果使用JOIN,将导致性能问题。请尝试使用BINARY SEARCH。然后将所有数据追加到FINAL TABLE中。


0
投票

我只是将Jagger的宝贵评论转化为将来的访问者的答案。

© www.soinside.com 2019 - 2024. All rights reserved.