SELECT SHOP.SHOP_CURR || get_money_format(SUM(ADV.STORED_CREDIT_AMT + ADV.USED_AMT),2,1) as LBL_ADVANCESALEBALANCE (쿼리실행 시 타이틀 명)
FROM GWP_SHOP_INFO SHOP, GWP_ADVSALE_INFO ADV
WHERE SHOP.TO_SHOP_CODE = ADV.TO_SHOP_CODE
AND ADV.TO_SHOP_CODE = '300'
AND ADV.SALE_DATE=TO_DATE(20120305,'YYYYMMDD') AND ADV.SALE_SEQ='1'
GROUP by SHOP.SHOP_CURR
SHOP_CURR : 환종코드 ($(미국), RMB(중국화폐) 등등.) 컬럼 RMB
(ADV.STORED_CREDIT_AMT + ADV.USED_AMT : 나타내고자 하는 금액의 합계 ex) 100(컬럼)+200(컬럼)=300
SHOP_CODE : 매장코드 컬럼
SALE_DATE : 영수증에 나오는 판매날짜 컬럼
SALE_SEQ : 판매순서 컬럼
get_money_format : 소수점 프로시저 .00
프로시저 내용
프로시저에서. 소수점 부분 실행시.
select get_money_format(300,2,1) from dual 300.00 이 나옵니다.
그래서 300대신에. SUM(ADV.STORED_CREDIT_AMT + ADV.USED_AMT 을 넣어 줌으로써.
get_money_format(SUM(ADV.STORED_CREDIT_AMT + ADV.USED_AMT),2,1) 이렇게 표현했습니다.
CREATE OR REPLACE FUNCTION MCMP.GET_MONEY_FORMAT(
P_MONEY VARCHAR2
, P_DECIMAL_POINT_CNT VARCHAR2 -- 소수점 자리수
, P_DECIMAL_CODE VARCHAR2 -- 포맷 구분 : 1: , 2: .
)
RETURN VARCHAR2 IS
V_MONEY VARCHAR2(30) := '';
BEGIN
BEGIN
SELECT
DECODE(P_DECIMAL_CODE, '2', REPLACE(P_MONEY, '.',','), P_MONEY)
INTO V_MONEY
FROM DUAL;
SELECT
DECODE(P_DECIMAL_POINT_CNT, '2', TO_CHAR(V_MONEY , '999,999,999.99'), '3', TO_CHAR(V_MONEY , '999,999,999.999'))
INTO V_MONEY
FROM DUAL;
EXCEPTION WHEN OTHERS THEN
V_MONEY := '';
END
;
RETURN V_MONEY;
END GET_MONEY_FORMAT;
/
JSP 부분.