안녕하세요
A 테이블의 BUDAT컬럼 (데이터 타입이 DATS 이고 길이가 8 ) - ex) 20190806
B 테이블의 PERBL컬럼 ( 데이터 타입이 NUMC 이고 길이가 7 ) - ex) 2019008
두 개의 컬럼으로 join 을 하고싶은데
쿼리에서 어떻게 써야 좋을까요 ?
A 테이블컬럼과 B 테이블컬럼 모두 SUBSTING 을 이용하여 201908 로만 비교하고싶은데
가능할까요?
답변 부탁드립니다 ㅠㅠ
댓글 5
-
sapabap
2019.08.06 21:55
-
dhs
2019.08.06 22:02
답변 감사합니다.
근데, 말씀해주신 방법으로
문자열을 쪼갤 수 있는건가요 ?
-
sapabap
2019.08.06 22:50
안녕하세요.
변수를 선언해서 abap 구문을 중간에 로직으로 넣어줘야 합니다.
data : lv_budat type PERBL
select ...
concatenate BUDAT+0(5) + '0' + BUDAT+6(1) into lv_budat
endselect.
-
애불래
2019.08.07 00:13
S/4HANA 1511 이후에는 OPEN SQL에서 ROUND, CONCAT,LPAD, LENGTH, REPLACE, RIGHT, RTRIM, SUBSTRING, COALESCE 등 사용가능합니다만
예전 ECC나 SOH라면 sapabap님 답변처럼 하거나 native SQL을 쓰심 됩니다. 저는 native sql 으로 하시길 추천 드립니다
-
sapabap
2019.08.07 01:19
S/4 HANA에서는 LEFT, RIGHT 이런구문이 되는군요~~
ABAP OPEQN SQL에는 SUBSTRING과 같은 구문이 없어요.
1. SELECT 구문을 2번 사용하는방법..
SELECT ~
SELECT ~
ENDSELECT.
ENDSELECT.
2. 인터널 테이블에 넣어서 다시 SQL을 실행하는 방법으로 해야할듯 하네요.