SAP中ABAP的查询
一、日期和时间两个字段,比如要查询 2023/05/01 00:00:00到 2023/05/20 17:00:00的数据
DATA: lt_data TYPE TABLE OF cdhdr.
SELECT * FROM cdhdr
WHERE CAST( concat( udate,utime ) AS NUMC( 14 ) ) > '20230501000000'
AND CAST( concat( udate,utime ) AS NUMC( 14 ) ) < '20230520170000'
INTO TABLE @lt_data.
二、两个字段拼接成一个字段放入内表栏位
TYPES: BEGIN OF ty_po,
aufnr TYPE c LENGTH 16,
END OF ty_po.
DATA: lt_po TYPE TABLE OF ty_po.
SELECT CAST( concat( auart,aufnr ) AS CHAR( 16 ) ) AS aufnr
FROM aufk
INTO TABLE @lt_po.
三、获取字段的后17位使用RIGHT,前17位使用LEFT
SELECT a~matnr,
a~werks,
a~lgort
CASE WHEN length( b~sgtxt ) > 17 THEN right( b~sgtxt ,17 )
ELSE b~sgtxt
END AS sgtxt
FROM MSEG AS a
INTO TABLE @DATA(lt_mseg).
四、去掉字段左边或者右边的零:左边(LTRIM),右边(RTRIM)
SELECT RTRIM( '1001100000','0' ) as num
FROM aufk
INTO TABLE @data(lt_po).