1 , SUBSTRING , RIGHT
SELECT A~* , RIGHT( OBJECTID ,8 ) AS KEY FROM CDHDR AS A
WHERE OBJECTCLAS = ‘PLAN’
AND RIGHT( OBJECTID ,8 ) IN ( SELECT PLNNR FROM MAPL WHERE WERKS = ‘1032’ )
AND UDATE >= ‘20230101’
INTO TABLE @DATA(LT_CDHDR) .
SELECT A~* , B~* FROM CDHDR AS A
INNER JOIN MAPL AS B ON SUBSTRING( A~OBJECTID,5,8 ) = B~PLNNR AND SUBSTRING( A~OBJECTID,4,1 ) = B~PLNTY
WHERE A~OBJECTCLAS = ‘PLAN’
AND RIGHT( OBJECTID ,8 ) IN ( SELECT PLNNR FROM MAPL WHERE WERKS = ‘1032’ OR WERKS = ‘1024’ )
AND A~UDATE >= ‘20230101’
INTO TABLE @DATA(LT_CDHDR2) .
( 字段名, 启示字段 , 长度 )
SUBSTRING( FIELDNAME , BEGDA , LENGTH )
SELECT *
FROM MAPL AS A
WHERE EXISTS ( SELECT * FROM CDHDR AS B
WHERE SUBSTRING( B~OBJECTID,5,8 ) = A~PLNNR
AND SUBSTRING( B~OBJECTID,4,1 ) = A~PLNTY
AND B~UDATE >= ‘20230101’ )
AND WERKS = ‘1032’ OR WERKS = ‘1024’
INTO TABLE @LT_MAPL
.
submit
https://www.cnblogs.com/hhelibeb/p/5802398.html
动态组建结构及表
DATA :GT_COMPONENTS TYPE CL_ABAP_STRUCTDESCR=>COMPONENT_TABLE,
GS_COMPONENTS LIKE LINE OF GT_COMPONENTS,
LR_DESCR_REF TYPE REF TO CL_ABAP_STRUCTDESCR.
*LR_DESCR_REF ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_NAME( ‘T001’ ).
LR_DESCR_REF ?= CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA( LS_DATA ).
LOOP AT LR_DESCR_REF->COMPONENTS ASSIGNING FIELD-SYMBOL(<FS_COMP>).
ASSIGN COMPONENT <FS_COMP>-NAME OF STRUCTURE LS_DATA TO FIELD-SYMBOL(<FS_VALUE>).
CHECK SY-SUBRC = 0 AND <FS_VALUE> IS NOT INITIAL.
ENDLOOP.
DATA(LR_DATA) = CL_ABAP_ELEMDESCR=>DESCRIBE_BY_NAME( ‘SIGN’ ) .
DATA(LR_DATA1) = CL_ABAP_ELEMDESCR=>DESCRIBE_BY_NAME( ‘OPTION’ ) .
DATA(LR_DATA2) = CL_ABAP_ELEMDESCR=>DESCRIBE_BY_NAME( ‘CHAR10’ ) .
DATA(LR_DATA3) = CL_ABAP_ELEMDESCR=>DESCRIBE_BY_NAME( ‘CHAR10’ ) .
**DATA(LR_DATA2) = CL_ABAP_ELEMDESCR=>DESCRIBE_BY_DATA( LS_DATA-BUKRS ) .
GS_COMPONENTS-NAME = ‘SIGN’ .
GS_COMPONENTS-TYPE ?= LR_DATA .
APPEND GS_COMPONENTS TO GT_COMPONENTS.
GS_COMPONENTS-NAME = ‘OPTION’ .
GS_COMPONENTS-TYPE ?= LR_DATA1 .
APPEND GS_COMPONENTS TO GT_COMPONENTS.
GS_COMPONENTS-NAME = ‘LOW’ .
GS_COMPONENTS-TYPE ?= LR_DATA2 .
APPEND GS_COMPONENTS TO GT_COMPONENTS.
GS_COMPONENTS-NAME = ‘HIGH’ .
GS_COMPONENTS-TYPE ?= LR_DATA3 .
APPEND GS_COMPONENTS TO GT_COMPONENTS.
DATA(LT_LINE) = CL_ABAP_STRUCTDESCR=>CREATE( P_COMPONENTS = GT_COMPONENTS ) .
DATA : TAB_REF TYPE REF TO DATA .
DATA LR_TABLEDESCR TYPE REF TO CL_ABAP_TABLEDESCR.
LR_TABLEDESCR = CL_ABAP_TABLEDESCR=>CREATE(
P_LINE_TYPE = LT_LINE ).
CREATE DATA TAB_REF TYPE HANDLE LR_TABLEDESCR.
获取VBAK的数据到临时内表中
select vbeln , ERDAT ,ERZET ,ERNAM from vbak AS A into table @data(lt_vbak) .
获取VBAP的数据到临时内表中
select vbeln , POSNR ,MATNR ,MATWA from vbap AS Ainto table @data(lt_vbap) .
#通过inner join 将要两个内表相互关联
1 ,
select a~vbeln ,a~ERDAT ,A~ERZET , A~ERNAM , B~POSNR ,B~MATNR ,B~MATWA
FROM @LT_VBAP AS A INNER JOIN @LT_VBAP AS B ON A~VBELN = B~VBELN INTO TABLE @DATA(LT_GATA) .
2 , 内表关联
SELECT BUKRS , BUTXT , LAND1
FROM @LT_T001 AS A
WHERE LAND1 = ‘CN’
INTO TABLE @DATA(LT_T001B) .
LOOP AT LT_T001 INTO DATA(LS_T001).
ENDLOOP.
LOOP AT LT_T001B INTO DATA(LS_T001B) .
ENDLOOP.