我想在内连接 SQL 选择中将字段 bseg~zuonr
与 aufk~aufnr
进行比较。
SELECT bseg~hkont, bseg~zuonr, bseg~belnr, bseg~gjahr, aufk~prctr FROM bseg INNER JOIN aufk
ON bseg~zuonr = aufk~aufnr "<--
WHERE bseg~hkont IN @s_hkont
INTO TABLE @DATA(output).
此选择不适合我,并且不会返回任何数据。
我认为我的问题是,aufk~aufnr
有前导零(例如:000072667023
),而bseg~zuonr
仅包含不带前导零的数字(例如:72667023
)。
我尝试使用 TRIM
-function在 SQL select 内部,但这对我不起作用(代码片段:ON bseg~zuonr = TRIM( LEADING '0' FROM aufk~aufnr )
→ "("此处不允许。应为“.”。
)
我做错了什么吗?您知道这个问题有什么解决办法吗?
最佳答案
您可以使用concat
函数。例如
SELECT bseg~hkont, bseg~zuonr, bseg~belnr, bseg~gjahr, aufk~prctr
FROM bseg
JOIN aufk ON concat( '0000', bseg~zuonr ) = aufk~aufnr
WHERE bseg~hkont IN @s_hkont
INTO TABLE @DATA(output).
您还可以将其与 substring
结合使用,将 aufnr 精确设置为 12 个字符
关于abap - 忽略 JOIN 条件中的前导零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74094099/