I want to compare the field bseg~zuonr
with aufk~aufnr
in an inner join SQL select.
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).
This select is not working right for me and not giving back any data.
I think my problem is, that aufk~aufnr
has leading zeros (for example: 000072667023
) and bseg~zuonr
contains only the number without leading zeros (for example: 72667023
).
I have tried to use the TRIM
-function inside the SQL select but that did not worked for me (Code snipped: ON bseg~zuonr = TRIM( LEADING '0' FROM aufk~aufnr )
→ "(" is not allowed here. "." is expected.
)
Did I do something wrong? Do you know any solution for this issue?
You could use the concat
function. For example
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).
Also you can combine this with substring
to set the aufnr exact to 12 chars