간격이 좁혀져서 나오게 할려면 어떡해 해야 하나요?? 0 4 2,229

by 동안이 [SQL Query] 쿼리. [2012.03.13 09:30:28]


토드.jpg (127,557Bytes)
결과.jpg (137,630Bytes)


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   퀴리 때문에 이 간격이 도무지 좁혀지지 않네요.. 위에 처럼 좁혀져서 나오게 하고 싶은데.

답변 부탁드릴께요. ^^

by 이재현 [2012.03.13 11:15:03]

쿼리 때문에 간격이 좁혀지지 않는다는게 이해가 안가는군요. ㅡㅡ^

by 동안이 [2012.03.13 11:35:46]

넹 말 그대로 안좁혀집니다. 공백을 제거해 볼까 TRIM이나 LRTM도 써봤는데. 어떡해 해야 될지 모르겠네요.

by 마농 [2012.03.13 13:53:31]

공백 제거는 Replace 를 이용하세요.

by 송민구 [2012.03.13 17:36:15]
자세히 읽어보진 않았지만 ^^;
'999,999,999.00' 로 하면 공간차지 하지 않나요?
앞에 fm 붙여보세요 
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입