SELECT INNER JOIN小记

当我们select时用到INNER JOIN的时候,做三表连接

有时会遇到from 一个内表不好用的情况,这里提供了一种写法,仅供参考

SELECT
         BKPF~BUKRS,                                        "会社コード
         BSEG~BUZEI,                                         "会計伝票内の明細番号
    FROM @I_TAB AS A                                    "内部テーブル「ULファイルデータ」
   INNER JOIN BKPF                                        "会計伝票ヘッダ
      ON BKPF~BUKRS     = A~BUKRS
     AND BKPF~BELNR     = A~BELNR
     AND BKPF~GJAHR     = A~GJAHR
  INNER JOIN BSEG                                      "会計伝票明細
      ON BSEG~BUKRS     = BKPF~BUKRS                 
     AND BSEG~BELNR     = BKPF~BELNR                
     AND BSEG~GJAHR     = BKPF~GJAHR
     AND BSEG~BUZEI     = A~BUZEI
   WHERE BSEG~BUKRS     = @P_BUKRS                    "会社コード
     AND A~PROCE_RESULT = @SPACE
    INTO TABLE @C_IT_BKPF.                            "内部テーブル「会計伝票情報」

可以转换成loop 套read的写法,并附加相关限制条件

* 転記伝票情報の取得
  SELECT
         BKPF~BUKRS,                                  "会社コード
         BSEG~BUZEI,                                  "会計伝票内の明細番号
   FROM BKPF
  INNER JOIN BSEG                                     "会計伝票明細
      ON BSEG~BUKRS      = BKPF~BUKRS                  "#EC CI_DB_OPERATION_OK[2431747]
     AND BSEG~BELNR     = BKPF~BELNR                  "#EC CI_CMPLX_WHERE
     AND BSEG~GJAHR     = BKPF~GJAHR
   WHERE BSEG~BUKRS     = @P_BUKRS                    "会社コード
    INTO TABLE @C_IT_BKPF.                            "内部テーブル「会計伝票情報」

  LOOP AT C_IT_BKPF ASSIGNING FIELD-SYMBOL(<LW_BKPF>).

    READ TABLE U_IT_UPFILE INTO DATA(LW_UPFILE)
      WITH KEY
        NS00
      COMPONENTS
        BUKRS = <LW_BKPF>-BUKRS    
        BELNR = <LW_BKPF>-BELNR
        GJAHR = <LW_BKPF>-GJAHR
        BUZEI = <LW_BKPF>-BUZEI  (附加条件1)
        PROCE_RESULT = SPACE.    (附加条件2)

    IF SY-SUBRC <> 0.

      DELETE TABLE C_IT_BKPF FROM <LW_BKPF>.

    ENDIF.

  ENDLOOP.


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值