--(반장님꺼)
-- 대상테이블 : 회원정보테이블
-- 조회컬럼 : 회원아이디 Id, 회원이름 성명, 회원성별 성별, 회원의 결혼유무(회원기념일의 데이터를근거로)를
-- 유추해서 출력(decode이용) 결혼유무, 회원의 메일서버계정은 'naver.com'으로 일괄변경,
-- 회원의 주민번호1을 이용해 'yy년도mm월dd일출생'으로 출력, 주민번호2의 2번째인덱스에서 4개로
-- 출생신고지역코드 출력,
-- 주민번호의 유효성검사후 '유효' 또는 '무효' 출력
-- 예시) 123456-1234563 => 1 2 3 4 5 6 1 2 3 4 5 6 3(매직넘버)
-- *2 3 4 5 6 7 8 9 2 3 4 5
-- --------------------
-- 2+6+12+.................+30 = 206 => 206을 11로 나눈 나머지를 11에서 빼기하고, 그 수를 다시
-- 10으로 나눈 나머지가 주민번호 마지막수와 일치하면 유효주민번호
-- 정렬 : 회원아이디 내림차순
select * from member;
select (to_number(substr(mem_regno1,1,1))*2) from member;
select mem_id id,mem_name 성명,
case when substr(mem_regno2,1,1)=1 then '남'
else '여'
end 성별,
case when substr(mem_memorial,1,2)='결혼' then '기혼'
when substr(mem_memorial,1,2)='아내' then '기혼'
when substr(mem_memorial,1,2)='남편' then '기혼'
else '미혼'
end 결혼유무,
regexp_substr(mem_mail,'[a-zA-Z0-9]+')||'@naver.com' 메일,
substr(mem_regno1,1,2)||'년도'||substr(mem_regno1,3,2)||'월'||substr(mem_regno1,5,2)||'일출생' 생년월일,
decode(
( mod(11-mod(
(to_number(substr(mem_regno1,1,1))*2)+( to_number(substr(mem_regno1,2,1))*3 )+( to_number(substr(mem_regno1,3,1))*4 )+
( to_number(substr(mem_regno1,4,1))*5 )+( to_number(substr(mem_regno1,5,1))*6 )+( to_number(substr(mem_regno1,6,1))*7 )+
( to_number(substr(mem_regno2,1,1))*8 )+( to_number(substr(mem_regno2,2,1))*9 )+( to_number(substr(mem_regno2,3,1))*2 )+
( to_number(substr(mem_regno2,4,1))*3 )+( to_number(substr(mem_regno2,5,1))*4 )+( to_number(substr(mem_regno2,6,1))*5 )
,11),10) )
,to_number(substr(mem_regno2,7,1)) ,'적합','부적합') 주민번호적합여부
from member order by 1;
--(반장님꺼)
--대상테이블 : 회원정보테이블, 장바구니테이블
--대상컬럼 : 회원아이디 아이디, 회원이름 성명, 구매번호 구매번호,
-- 구매번호에서 구매년도 추출 구매년,
-- 구매금액의합 (구매수량*판매가) 널인경우 0으로해서 천단위
-- 출력형태, 원화표시 출력 구매금액
--조건 : 회원아이디가 'r001'이고 회원의 주소가 '대전',
-- 구매금액은 50000000 이하
--정렬 : 회원아이디 오름차순
select substr(cart_no,1,4) 구매년 from cart;
nvl(to_char(sum(cart_qty*prod_sale),'999,999,999,999,999.00L'),0) 구매금액의합
select * from member;
select * from cart where cart_member='r001';
select * from prod;
select mem_id 아이디,mem_name 성명,cart_no 구매번호,
substr(cart_no,1,4) 구매년,
nvl(to_char(sum(cart_qty*prod_sale),'999,999,999,999,999L'),0) 구매금액의합
from member left outer join cart on(mem_id=cart_member)
left outer join prod on(prod_id=cart_prod)
where mem_add1 like '대전%'
and mem_id='r001'
group by mem_id,mem_name,cart_no
having sum(cart_qty*prod_sale)<=50000000
order by 1;
이 글은 스프링노트에서 작성되었습니다.
'오라클' 카테고리의 다른 글
SYS_CONNECT_BY_PATH (0) | 2012.07.26 |
---|---|
오라클 구조 보기 sql 문 (desc) (0) | 2012.06.07 |
sqlplus에서 셀렉트 update문 가져 오기. (0) | 2012.05.08 |
OCP정리 (0) | 2012.05.08 |
오라클(ORACLE) (0) | 2012.05.08 |