--- 대리점 table
create table 대리점
as
select round( dbms_random.value(1, 3000) , 0) as 대리점번호, 'a' as 대리점명 , 'b' as 업체코드 , 'c' as 업체명
from dual
connect by level <= 3000
;
update deri
set co_code = 'A'|| lpad ( round(dbms_random.value(1, 600),0) ,3 ,0)
where deri_no > 0
;
select count ( distinct(co_code) )
from deri
;
select avg(count(*))
from deri
group by co_code
;
--- dbms_random 패키지를 사용해서 딱 600개의 코드는 나오지 않지만 그와 근사치로 나온다
(저는 distinct count가 596 나왔습니다.)
또 그룹 코드당 평균 5개 정도 대리점을 가지고 있다.
commit ;
---- 코드 테이블
create table code
as
select 'a'||to_char ( round( dbms_random.value(1,10) , 0 ) ) as con_code , 'D01' as group_code
from dual
connect by level <= 10
;
update code
set group_code = 'A01'
where rownum <= 3
;
select *
from code
where group_code = 'A01'
;
commit ;
--- 계약 테이블
create table 계약1
as
select /*+ 날짜형식 yyyymm */ rownum as 계약번호, dbms_random.value (1, 3000) as 대리점번호
, 'a'||to_char ( round( dbms_random.value(1,10) , 0 ) ) as 계약상태코드
, to_date(round(dbms_random.value(1980, 1999),0) || round(dbms_random.value(1,12),0) , 'yyyymm' ) as 계약일자
from dual
connect by level <= 1000000
;
or
create table 계약2
as
select /*+ 날짜형식 yyyymmdd */ rownum as 계약번호, dbms_random.value (1, 3000) as 대리점번호, 'a'||to_char ( round( dbms_random.value(1,10) , 0 ) ) as 계약상태코드
, to_date(round(dbms_random.value(1980, 1999),0) || lpad(round(dbms_random.value(1,12),0) ,2 ,0) || round(dbms_random.value(1,28),0) , 'yyyymmdd' ) as 계약일자
from dual
connect by level <= 1000000
;
-- 날짜는 2월달 때문에 28일까지로 맞춤
'ORACLE > SQLP' 카테고리의 다른 글
SQLP 시험 문제 7일차 (0) | 2016.11.24 |
---|---|
SQLP 시험문제 6일차 (0) | 2016.11.24 |
sqlp19회 실습문제 2번 테이블명 컬럼명 영어로 바꿈 (0) | 2016.11.04 |
SQLP 19회차 실습문제 2번 (0) | 2016.11.03 |
SQLP 19회차 실습 1번 문제 (0) | 2016.11.02 |