--- 대리점 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

+ Recent posts