안녕하세요
검색해보니 곱셉함수는 따로 없고 EXP(SUM(LOG(val))) 으로 처리 한다고 하네요
SELECT EXP(SUM(LOG(7))) -- 이경우 7이 나옵니다.
그런데 7 대신에 컬럼값이 들어가야 하고 컬럼의 값들은 DECIMAL(6,2) 타입 입니다.
SELECT EXP(SUM(LOG(7.00))) -- 역시 이경우 7이 나옵니다.
결과값의 소수점 2자리 밑으로 절삭을 위해서
아래처럼 ROUND를 사용합니다.
SELECT ROUND(EXP(SUM(LOG(7))), 2, 1) -- 6.99 가 나옵니다.
7 대신 5, 8을 대입해도 결과는 4.99, 7.99 가 나오네요
정확한 값이 나오게 하려면 어찌 해야 할까요
답변부탁드립니다
감사합니다.
이상하게 나오네요..
log연산은 부동소수점 float 형으로 반환되서 발생하는 문제가 아닐지 생각되네요..
형변환을 하시면 원하는 값이 나오긴 합니다...
SELECT ROUND( CONVERT( numeric, EXP(sum((LOG(7))))) ,2,1)