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 부분. ( 태그라서 <> 대신 [] 표현함. )
[tr]
[td]
[textarea name="sLblTotalAmt" rows=1 style="width:380;height:0;border:0 solid #E3E3E3;overflow:visible;text-overflow:ellipsis;"]AdvanceSalesBalance [%=sLblAdvanceSaleBalance%][/textarea]
[/td]
[/tr]
[%=sLblAdvanceSaleBalance%] 쿼리가 들어 가는 호출부분.
이렇게 작성할 시 결과가 화면에서.
ADVANCESALEBALANCE <--- 이 부분은 쿼리랑 무관한 JSP에서 HTML에서 넣어준 텍스트 입니다.
RMB 300.00 <--------------- 이 부분이 쿼리로 짠 부분.
이렇게 나오는데 이걸.
ADVANCESALEBALANCE RMB 300.00
이렇게 나오게 할려면 어떡해 해야 하나요??
RMB 300.00 퀴리 때문에 이 간격이 도무지 좁혀지지 않네요.. 위에 처럼 좁혀져서 나오게 하고 싶은데.
답변 부탁드릴께요. ^^