関数ビルダーで SQL を使用して入力する3 つのテーブル を作成Z588B
しました。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 にデータを返さない理由を誰か教えてもらえますか?