
-- SI-T 15/02/2024 - ESE3

-- 3.2)

create table TORNEI (
     CodT char(5) not NULL primary key,
     Descrizione varchar(30) not null);
    
create table TERMINATI (
     CodT char(5) not NULL primary KEY references TORNEI,
     CodG_Vincitore char(5) not null);

create table TG (
     CodT char(5) not NULL references TORNEI,
     CodG char(5) not null,
     Punti dec(6,2) not null, -- oppure anche INT
     constraint ID_TG_ID primary key (CodG, CodT));

-- 3.3)
    
-- INSERT per testare il funzionamento

INSERT INTO TORNEI
VALUES 	('T1234','Freccette bendati');
	
INSERT INTO TG
VALUES 	('T1234','G0001',37),
		('T1234','G0002',39);

CREATE OR REPLACE TRIGGER DETERMINA_VINCITORE
BEFORE INSERT ON TERMINATI
REFERENCING NEW AS N
FOR EACH ROW
SET N.CodG_Vincitore = 
	 (	SELECT	TG1.CodG
		FROM	TG TG1
		WHERE	TG1.CodT = N.CodT
		AND		TG1.Punti = ( SELECT MAX(TG2.Punti)
							  FROM	 TG TG2
							  WHERE  TG2.CodT = TG1.CodT) );


INSERT INTO TERMINATI(CodT)
VALUES ('T1234');








