1

関数ビルダーで SQL を使用して入力する3 つのテーブル を作成Z588Bしました。Z588TZFINALTABLE

最初にこれらのテーブルに参加しようとしましたが、エラーが発生しました

プール テーブルのクラスタ テーブルとプロジェクション ビューの結合は許可されていません

T588Bそのため、テーブルからのデータを格納する一時テーブルを作成したT588Tので、一時テーブルを使用して、必要な出力フィールドである ZFINALTABLE にそれらを結合できます。

必要なデータを入力できましたがZ588BZ588T これらの一時テーブルを使用した JOIN はデータを返しませんでした。

私の手順:

  1. Z_BAPI_TESTP_FMSE37を使用して関数モジュールを作成

  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 にデータを返さない理由を誰か教えてもらえますか?

4

1 に答える 1