NUMC 유형 필드에 SUM 함수를 사용하는 방법
NUMC는 숫자 텍스트(numeric text) 유형입니다. 데이터베이스에서는 VARCHAR 형태로 저장되기 때문에 일반 텍스트로 취급되며, 이로 인해 SUM 함수를 직접 적용할 수 없습니다.
왜 SUM 함수가 동작하지 않을까요?
SUM 함수는 산술 연산을 수행하기 위해 숫자 유형의 데이터가 필요합니다. 그러나 NUMC 필드는 이름 그대로 '숫자처럼 보이는 텍스트'이므로, 데이터베이스 수준에서는 문자열(varchar)로 처리됩니다. 따라서 SELECT 문에서 해당 필드에 직접 SUM을 적용하면 오류가 발생하거나 의도한 결과를 얻을 수 없습니다.
우회 해결 방법
이 문제에 대한 간단한 해결책은 없지만, 다음과 같은 절차를 통해 원하는 결과를 얻을 수 있습니다.
- 데이터를 내부 테이블(internal table)로 복사합니다.
- 모든 행을 반복(LOOP) 처리하면서 NUMC 데이터를 DEC 유형으로 변환합니다.
- 변환된 DEC 값에 대해 SUM과 GROUP BY를 수행하여 집계합니다.
- 집계가 완료된 DEC 값을 다시 NUMC 값으로 역변환합니다.
이 과정을 거치면 NUMC 필드의 데이터도 정상적으로 합계를 계산할 수 있습니다. 다만 대량의 데이터를 처리할 경우 성능 저하가 발생할 수 있으므로, 가능하다면 애초에 금액이나 수량 같은 숫자 연산이 필요한 필드는 DEC, QUAN 등의 숫자 유형으로 설계하는 것이 좋습니다.