결과가 한줄 뛰어져서 나오는데. 같은줄로 쓸려면 어떡해 해야 하나요?? 0 2 2,888

by 동안이 [Oracle 기초] 줄바꿈 쿼리 [2012.03.12 18:50:26]



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 부분.


 
  
 


<%=sLblAdvanceSaleBalance%>: 쿼리가 들어 가는 호출부분.


이렇게 작성할 시 결과가 화면에서.

ADVANCESALEBALANCE   <--- 이 부분은 쿼리랑 무관한 JSP에서 HTML에서 넣어준 텍스트 입니다.
RMB 300.00  <--------------- 이 부분이 쿼리로 짠 부분.

이렇게 나오는데 이걸.

ADVANCESALEBALANCE      $ 300.00

이렇게 나오게 할려면 어떡해 해야 하나요??

답변 부탁드릴께요. ^^

by 마농 [2012.03.13 08:22:23]

질문이 잘 이해가 안가네요.
ADVANCESALEBALANCE 은 혹시 쿼리 실행시 나오는 타이틀 혹은 컬럼명칭 아닌가요?
데이터와 타이틀응 명확하게 구분해서 설명해 주세요.
RMB 는 뭔가요?

by 마농 [2012.03.13 09:48:15]

RMB 가 $ 로 바뀌어 나오는것은 설마 아니죠?
질문하실때 예문을 정확하게 해주시지 않으면 헷갈려요.
어차피 데이터는 한건 나온거구요.
ADVANCESALEBALANCE 부분은 jsp 에서 처리하는 거자나요?
그걸 위에 붙이든 앞에 붙이든 그건 jsp에서 알아서 하시면 되는 것입니다.
쿼리에서 굳이 하고자 하시면 Select 절에 문자열을 그대로 조회하시면 되구요.
SELECT 'ADVANCESALEBALANCE' AS gubun,
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입