数据库
首页 > 数据库> > amdp client/filter/sql

amdp client/filter/sql

作者:互联网

公共amdp 接口声明


  PUBLIC SECTION.

    INTERFACES if_amdp_marker_hdb.

  METHOD get_039_data BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT
    OPTIONS READ-ONLY USING   zmm1000t039 marc  t024 makt lfa1 eina  MSEG mkpf zasnitem .

 lt_039 = SELECT DISTINCT a.*,CAST( A.menge AS CHAR( 20 ) ) AS menge01,CAST( A.menge1 AS CHAR( 20 ) ) AS menge02, CAST( A.zzhgx AS CHAR( 20 ) ) AS menge03,--CAST( A.zxtylzd3 AS NUMBER( 12 ) ) AS zsrmnoh,
                 c.name1,b.maktx,d.ekgrp,g.eknam,e.idnlf ,CASE WHEN I.werks <> ' ' THEN I.werks ELSE f.werks END AS werks
            FROM zmm1000t039 AS a
           INNER JOIN  marc AS d  ON d.MANDT = A.MANDT AND a.matnr = d.matnr AND d.werks = '1000'
            LEFT JOIN  t024 AS g  ON d.MANDT = g.MANDT AND d.ekgrp = g.ekgrp
            LEFT JOIN  makt AS b  ON b.MANDT = a.MANDT AND a.matnr = b.matnr
            LEFT JOIN  lfa1 AS c  ON c.MANDT = a.MANDT AND a.lifnr = c.lifnr
            LEFT JOIN  eina AS e  ON e.MANDT = a.MANDT AND a.lifnr = e.lifnr AND a.matnr = e.matnr
            LEFT JOIN  mkpf AS H  ON H.MANDT = A.MANDT AND A.zsrmno1 = H.FRBNR
            LEFT JOIN  MSEG AS I  ON I.MANDT = A.MANDT AND I.MBLNR = H.MBLNR AND I.MJAHR = H.MBLNR
            LEFT JOIN zasnitem AS f ON F.MANDT = A.MANDT AND a.zsrmno1 = f.stno
           WHERE A.MANDT =  SESSION_CONTEXT('CLIENT')
             AND a.zsrmno1 LIKE 'ASN%'
           UNION ALL
          SELECT DISTINCT a.*,CAST( A.menge AS CHAR( 20 ) ) AS menge01,CAST( A.menge1 AS CHAR( 20 ) ) AS menge02, CAST( A.zzhgx AS CHAR( 20 ) ) AS menge03,--CAST( A.zxtylzd3 AS NUMBER( 12 ) ) AS zsrmnoh,
                 c.name1,b.maktx,d.ekgrp,g.eknam,e.idnlf ,h.werks
            FROM zmm1000t039 AS a
           INNER JOIN  marc AS d  ON d.MANDT = A.MANDT AND a.matnr = d.matnr AND d.werks = '1000'
            LEFT JOIN  t024 AS g  ON d.MANDT = g.MANDT AND d.ekgrp = g.ekgrp
            LEFT JOIN  makt AS b  ON b.MANDT = a.MANDT AND a.matnr = b.matnr
            LEFT JOIN  lfa1 AS c  ON c.MANDT = a.MANDT AND a.lifnr = c.lifnr
            LEFT JOIN  eina AS e  ON e.MANDT = a.MANDT AND a.lifnr = e.lifnr AND a.matnr = e.matnr
            LEFT JOIN  MSEG AS h  ON h.MANDT = A.MANDT AND SUBSTRING( A.ZSRMNO1,1,10 ) = h.MBLNR AND SUBSTRING( A.ZSRMNO1,12,4 )  = h.MJAHR
           WHERE A.MANDT =  SESSION_CONTEXT('CLIENT')
             AND a.zsrmno1 NOT LIKE 'ASN%'
             AND a.zsrmno1 IS NOT NULL;
  et_039 = APPLY_FILTER(:lt_039, :IV_COND );
  ENDMETHOD.

标签:lifnr,MANDT,matnr,JOIN,filter,CAST,client,amdp,LEFT
来源: https://blog.csdn.net/qq_44304062/article/details/122684050