我创建了三个表Z588B
,我想在函数生成器中使用 SQL 填充它们Z588T
。ZFINALTABLE
首先,我尝试加入这些表,但出现错误
对于池表集群表和投影视图连接是不允许的
所以我创建了临时表来存储来自表的数据T588B
,T588T
这样我就可以使用临时表将它们加入到我需要的输出字段的 ZFINALTABLE 中。
我能够用我需要的数据填充Z588B
,Z588T
但使用这些临时表的 JOIN 没有返回任何数据。
我的步骤:
Z_BAPI_TESTP_FM
使用 SE37创建功能模块在导入选项卡中,我定义了参数。
MANDT TYPE ZTESTPA30-MANDT Client USERG TYPE ZTESTPA30-USERG User group
声明了我使用 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
在源码中输入我的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 中的任何数据吗?