본문 바로가기
개발/sql

oracle test 및 답

by 카앙구운 2015. 9. 29.
728x90
반응형

1.

INSERT INOT pReserve 

(unq,id,sDate,eDate,mCnt,rNum,app,rDate)

VALUES(

'4'

,'test4'

,'2015-09-25'

,'2015-09-27'

,'2'

,'3'

,'N'

,sysdate

);


2.서울에 사는 남자 회원 출력

select * from pMember where addr like '%서울%' and gender='M';


3.가장 최근에 등록한 회원 1명 출력(rownum적용)

select id, name from (select id,name from pMember order by unq desc)where rownum<2;


4.mRevInfo 라는 컬럼명으로 출력

mRevInfo

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

test1 :2015/09/25~ 2015-09-26

select id||':'||to_char(sDate,'YYYY/MM/DD')

||' ~ '||to_char(eDate,'YYYY/MM/DD') as mRevInfo 

from pReserve where id='test1';


5.mlastInfo라는 컬럼명으로 출력(오늘 기준으로 예약이 있는 회원출력)

mlastInfo

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

test4:2015-09-25 ~ 2015-09-27 (미결재 상태)

select id||':'||to_char(sDate,'YYYY/MM/DD')

||' ~ '||to_char(eDate,'YYYY/MM/DD')

||' 'decode(app,'Y','결재','미결재') as mlastInfo 

from pReserve 

where to_char(sDate,'YYYY/MM/DD')>to_char(sysdate,'YYYY/MM/DD');



6.mlastInfo라는 컬럼명으로 출력(오늘 포함 숙박이 지난 회원 출력)

select id||':'||to_char(sDate,'YYYY/MM/DD')

||' ~ '||to_char(eDate,'YYYY/MM/DD')||' 에 이용하셨습니다.' as mlastInfo

from pReserve

where to_date(eDate||' 23:59:59','YYYY/MM/DD HH24:SI:SS')<=sysdate;



7.아이디 이름 전화번호 출력(최근 등록한 순으로 정렬 후 5행~10행)

select id name from 

(select rownum as rn,id, name from 

(select id,name from pMember order by unq desc))

where rn>=5 and rn<=10;


8.가격이 가장 저렴한 방 예약한 사람 출력(아이디, 이름,전번,기간)

select m.id,name,hp,sDate,eDate 

from  pMember m,pReserve r

where m.id=r.id and r.rNum=(select rNum from pRmInfo order by money asc);//한개의 값이 r.rNum와 비교야하는데 여러개의 값이 나와 있으므로 안된다.


select m.id,name,hp,sDate,eDate from  pMember m,pReserve r where m.id=r.id and r.rNum=(select rNum from pRmInfo where money=(select min(money) from pRmInfo));

728x90
반응형

'개발 > sql' 카테고리의 다른 글

oracle sql  (0) 2015.10.05
oracle sql  (0) 2015.10.05
oracle sql  (0) 2015.09.28
oracle sql  (0) 2015.09.27
oracle sql  (0) 2015.09.25

댓글