몇가지 질문 0 0 1,096

by 전욱 [2007.04.23 13:38:12]


문제를 풀고 있는데요. 테이블작성은 했는데 트리거를 못만들겠어요.. 작성좀 부탁드릴게요.

 

sung 테이블 작성
CREATE TABLE sung
(
 hak NUMBER(1) NOT NULL,
 ban NUMBER(2) NOT NULL,
 beonho NUMBER(2) NOT NULL,
 name VARCHAR(20) NOT NULL,
 com NUMBER(3) NOT NULL,
 excel NUMBER(3) NOT NULL,
 word NUMBER(3) NOT NULL,
 CONSTRAINT pk_hak CHECK(hak >= 0 AND hak <= 3),
 CONSTRAINT pk_ba CHECK(ban >= 0 AND hak <= 10),
 CONSTRAINT pk_beonho CHECK(beonho >= 0 AND hak <= 50),
 CONSTRAINT pk_name CHECK(com >= 0 AND hak <= 100),
 CONSTRAINT pk_com CHECK(excel >= 0 AND hak <= 100),
 CONSTRAINT pk_word CHECK(word >= 0 AND hak <= 100),
 CONSTRAINT pk_sungid PRIMARY KEY(hak,ban,beonho)
);

CREATE TABLE sung_tot
(
 hak NUMBER(1) NOT NULL,
 ban NUMBER(2) NOT NULL,
 com NUMBER(3),
 excel NUMBER(3),
 word NUMBER(3),
 CONSTRAINT pk_sungtotid PRIMARY KEY(hak,ban)
);

============================================================================

뷰도 작성은 했는데 반별석차랑, 학년별 석차를 못구하겠어요..

 

뷰 작성
sung테이블을 이용하여 다음의 필드를 갖는 viewSung 라는 이름으로 view 를 작성한다.
출력할 필드
hak,ban,beonho,name,com,excel,word,tot,ave,banrank,hakrank
처리 조건
tot= com+excel+world
ave= (com+excel+word)/3
banrank : 반별석차
hakrank : 학년별 석차


===============================================================================

CREATE VIEW viewSUNG AS
SELECT hak, ban, beonho, name, com, excel, word,
       SUM(com+excel+word)tot, AVG((com+excel+word)/3)ave
FROM sung
GROUP BY  hak,ban,beonho,name,com,excel,word

=================================================================
트리거 작성
sung 테이블에 자료가 추가되거나 변경되는 경우 각 학년, 반별 각 과목의 합을 sung_tot테이블에 계산되도록
트리거를 작성한다.(추가,수정,삭제 트리거 작성)

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입