안녕하세요..
최근 모듈 담당을 맏아 ABAP 을 익히고 있는 초보중의 초보입니다.
문의 사항이 있어서요.
현재 구현코자 하는 내용은 다음과 같습니다.
조건 : 기준코드 A
기준코드 B
시작일 C
종료일 D
DATA : NAME (CHAR), MONEY (NUMC)
SELECT NAME, SUM( MONEY) AS MONEY
WHERE 코드조건 = A
AND 코드조건 =B
AND 날짜조건 BETWEEN C AND D
GROUP BY NAME
조건들은 RFC 를 통하여 타 시스템으로 받아 결과값을 다시 리턴하는 형태입니다.
상위와 같이 구현하려면
최최 SELECT 후 ITAB A 를 LOOP 돌면서 SUM 을 MONEY + MONEY 로 구한후,
해당 ITAB 을 GROUP BY 형태로 해야 하는지요.
MONEY 필드를 숫자타입으로 변환하여 쿼리만으로 SELECT 할 수 있는 방법은 없는 건인지요..
고민중에 문의 드립니다.
댓글 3
-
Tester
2010.12.10 03:13
-
라다메스
2010.12.10 20:25
답변 감사드립니다. ^^
알려주신 방법은 알고 있는 방법입니다만,, SUM 을 하고자 하는 필드가 NUMC 타입이기 때문에,
변환이 필요하여, 해당 조회 데이터를 ITAB 에 넣고, 처리해야 할 듯한데,,
이와 같은경우 GROUP BY 와 SUM 을 할 수 있는 방법이 있는지에 대해서 여쭈어 본 것입니다. ^^
알고 계신다면 부탁드리겠습니다.~~
-
qwert
2010.12.12 01:45
NUMC필드는 SAP ABAP상에서는 숫자로 표현된 문자열로 간주되기 때문에 open SQL상에서는 SUM, AVG 구문을 구사할 수 없습니다... 따라서, Native SQL을 구사할 수 있는 EXEC SQL 안에다 SQL을 집어넣고 sum을 하시면 될 것입니다.
한마디로 카테고리별 SUM을 내고 싶은 거군요.
물론 가능합니다. 구지 Loop 하면서 Sum 하실 필요는 없습니다.
select name sum( money ) as money
into corresponding field of table it_tab
from ztable
where a = a
and b = b
group by name.
뭐 이런식으로 하면 카테고리별 Sum 값이 들어옵니다.