개발속이야기/Oracle

정산리스트를 만드는 질의문을 작성하여 보세요.

스토리지기 2017. 12. 28. 09:58
출력형식은 아래와 같습니다.  

거래일자     승인시간  승인번호   카드번호                      가맹점코드 가맹점명   승인금액  할인금액 고객부담금 당사부담금 승인여부  
2015-01-17  10:01:01   12345       2171-XXXX-XXXX-XXXX   C111-1003 파리바게트, 강남점     2,000   200    1800    17  정상승인 

이렇게 표시하는 질의문을 작성할 수 있는 곳까지 만들어 보시고 
Plan도 표시해 보세요.  

본글에 답글로 달아주세요.   
반드시 테스트 파일로 질의문을 첨부하여 주세요.. 

PS. 반드시 답글의 형태로 남겨주시고 텍스트 파일을 첨부하여 주세요.   

대상테이블 : cal_tran      정산 History   
               cal_co_mast  가맹점 Mast 
               cal_join_mast 점포 Mast  
대상일자 : 2016-01-17 OR 2017-12-19 중의 택1 
대상건수 : 선착순 100 건  

---------------------------------------------------------------------


select hpn_yy||'-'||hpn_mm||'-'||hpn_dd 승인일자
, substr(hpn_hms, 1,2)||':'||substr(hpn_hms,3,2)||':'||substr(hpn_hms,5,2) 승인시간
, ack_num 승인번호
, substr(card_num1, 1, 4)||'-XXXX-XXXX-XX' || substr(card_num2, 5, 2) 카드번호
, a.co_cd||'-'||a.join_cd 가맹점코드
, c.join_name 가맹점명
, LPAD('\'|| TRIM(TO_CHAR(a.ACK_AMT, '999,990')), 18, ' ') 승인금액
, LPAD('\'|| TRIM(TO_CHAR(a.DC_AMT, '999,990')), 18, ' ') 할인금액
, LPAD('\'|| TRIM(TO_CHAR(a.PRT_AMT, '999,990')), 18, ' ') 고객부담금
, LPAD('\'|| TRIM(TO_CHAR(a.MY_AMT, '999,990')), 18, ' ') 당사부담금
, DECODE(ack_cd, '00', '정상승인', '취소') 승인구분 
from cal_tran PARTITION (P_TRAN_201501) a
    , cal_co_mast b
    , cal_join_mast c
where
a.CO_CD = b.CO_CODE (+)
and a.CO_CD = c.CO_CODE (+)
and a.hpn_dd='17'
and rownum <= 100
;