Merge pull request #20 from cromerc/feature_Correciones_Finales
Feature correciones finales
This commit is contained in:
commit
d98900140f
13
consulta.sql
13
consulta.sql
@ -12,18 +12,7 @@ WHERE A.ID_ATLETA NOT IN (
|
||||
);
|
||||
|
||||
-- Consulta 2
|
||||
-- Parte 1 Crear una vista que trae la cantidad maxima de atletas asociados a un pais que compitan en Atletismo
|
||||
CREATE OR REPLACE VIEW MAX_ATLETA_ATLETISMO_PAIS AS
|
||||
SELECT P.ID_PAIS, P.NOMBRE, COUNT(*) AS CANTIDAD_ATLETA
|
||||
FROM COMPETENCIA C
|
||||
LEFT JOIN PARTICIPAR_COMPETENCIA PC ON (C.ID_COMPETENCIA = PC.ID_COMPETENCIA)
|
||||
LEFT JOIN ATLETA A ON A.ID_ATLETA = PC.ID_ATLETA
|
||||
INNER JOIN DELEGACION D ON (D.ATLETA = A.ID_ATLETA)
|
||||
INNER JOIN PAIS P ON (P.ID_PAIS = D.PAIS)
|
||||
WHERE TIPO = (SELECT TD.ID_TIPO FROM TIPOS_DEPORTES TD WHERE (TD.DESCRIPCION = 'ATLETISMO'))
|
||||
GROUP BY (P.ID_PAIS, P.NOMBRE);
|
||||
|
||||
SELECT P.NOMBRE, M.CANTIDAD_ATLETA
|
||||
FROM MAX_ATLETA_ATLETISMO_PAIS M
|
||||
LEFT JOIN PAIS P ON (P.ID_PAIS = M.ID_PAIS)
|
||||
WHERE (M.CANTIDAD_ATLETA = (SELECT MAX(CANTIDAD_ATLETA) FROM MAX_ATLETA_ATLETISMO_PAIS))
|
||||
WHERE (M.CANTIDAD_ATLETA = (SELECT MAX(CANTIDAD_ATLETA) FROM MAX_ATLETA_ATLETISMO_PAIS));
|
||||
|
3
data.sql
3
data.sql
@ -13,6 +13,7 @@ INSERT INTO ATLETA (NOMBRE, APELLIDO, FECHA_NACIMIENTO, NACIONALIDAD) VALUES ('I
|
||||
INSERT INTO ATLETA (NOMBRE, APELLIDO, FECHA_NACIMIENTO, NACIONALIDAD) VALUES ('Chris', 'Cromer', TO_DATE('1998-05-22 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'Chilena');
|
||||
INSERT INTO ATLETA (NOMBRE, APELLIDO, FECHA_NACIMIENTO, NACIONALIDAD) VALUES ('Benjamin', 'Perez', TO_DATE('1992-01-28 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'Argentina');
|
||||
INSERT INTO ATLETA (NOMBRE, APELLIDO, FECHA_NACIMIENTO, NACIONALIDAD) VALUES ('Diego', 'Perez', TO_DATE('1983-12-24 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'Peruana');
|
||||
INSERT INTO ATLETA (NOMBRE, APELLIDO, FECHA_NACIMIENTO, NACIONALIDAD) VALUES ('Kevin', 'Perez', TO_DATE('1983-12-24 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 'Peruana');
|
||||
|
||||
|
||||
INSERT INTO PAIS (NOMBRE) VALUES ('Chile');
|
||||
@ -134,5 +135,3 @@ INSERT INTO PARTICIPAR_PRECOMPETENCIA (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FE
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (1, 1, TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (1, 2, TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (1, 3, TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (2, 1, TO_DATE('2020-07-08 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (3, 2, TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
|
26
trigger.sql
26
trigger.sql
@ -6,16 +6,35 @@ ON CIUDAD
|
||||
FOR EACH ROW
|
||||
DECLARE
|
||||
v_id_ciudad CIUDAD.ID_CIUDAD%TYPE;
|
||||
v_id_ciudad_busqueda CIUDAD.ID_CIUDAD%TYPE;
|
||||
|
||||
BEGIN
|
||||
SELECT MAX(ID_CIUDAD) INTO v_id_ciudad FROM CIUDAD;
|
||||
|
||||
IF v_id_ciudad IS NULL THEN
|
||||
:NEW.ID_CIUDAD := 1;
|
||||
IF (:NEW.ID_CIUDAD IS NOT NULL) AND (v_id_ciudad IS NOT NULL) THEN
|
||||
IF (v_id_ciudad+1) < :NEW.ID_CIUDAD THEN
|
||||
RAISE_APPLICATION_ERROR(-20120, 'NO SE PUEDE INSERTAR, El ID ingresado es mayor al ID maximo de la tabla');
|
||||
END IF;
|
||||
ELSE
|
||||
:NEW.ID_CIUDAD := v_id_ciudad + 1;
|
||||
IF v_id_ciudad IS NULL THEN
|
||||
:NEW.ID_CIUDAD := 1;
|
||||
ELSE
|
||||
IF :NEW.ID_CIUDAD IS NOT NULL THEN
|
||||
SELECT ID_CIUDAD INTO v_id_ciudad_busqueda
|
||||
FROM CIUDAD WHERE (ID_CIUDAD = :NEW.ID_CIUDAD);
|
||||
|
||||
IF v_id_ciudad_busqueda IS NOT NULL THEN
|
||||
RAISE_APPLICATION_ERROR(-20120, 'NO SE PUEDE INSERTAR, El ID ingresado ya Existe');
|
||||
END IF;
|
||||
ELSE
|
||||
:NEW.ID_CIUDAD := v_id_ciudad + 1;
|
||||
END IF;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
|
||||
END;
|
||||
/
|
||||
|
||||
-- Trigger 4
|
||||
CREATE OR REPLACE TRIGGER VALIDACION_PRE_COMPETENCIA
|
||||
@ -42,6 +61,7 @@ BEGIN
|
||||
END IF;
|
||||
CLOSE PARTICIPAR_PRECO;
|
||||
END;
|
||||
/
|
||||
|
||||
-- Trigger 5
|
||||
CREATE OR REPLACE TRIGGER CALCULAR_VALOR_DELEGACION
|
||||
|
@ -1,16 +1,22 @@
|
||||
-- Trigger 3
|
||||
INSERT INTO CIUDAD (NOMBRE, PAIS) VALUES ('Quelite', 1);
|
||||
|
||||
INSERT INTO CIUDAD (NOMBRE, PAIS) VALUES ('Convien', 1);
|
||||
|
||||
INSERT INTO CIUDAD (NOMBRE, PAIS) VALUES ('Wingsi', 2);
|
||||
|
||||
INSERT INTO CIUDAD (ID_CIUDAD, NOMBRE, PAIS) VALUES (20, 'Dailys', 2);
|
||||
|
||||
-- Trigger 4
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (1, 21, TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (1, 5, TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
|
||||
INSERT INTO PARTICIPAR_PRECOMPETENCIA (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES (3, 2, 100, TO_DATE('2020-06-27 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (1, 21, TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
INSERT INTO PARTICIPAR_PRECOMPETENCIA (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES (1, 5, 20, TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
|
||||
INSERT INTO PARTICIPAR_COMPETENCIA (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES (1, 5, TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
|
||||
|
||||
-- Trigger 5
|
||||
INSERT INTO HOSPEDAR (ID_HOTEL, ID_DELEGACION, PRECIO_DELEGACION, PRECIO_ATLETA) VALUES (1, 1, 5, 50000);
|
||||
INSERT INTO HOSPEDAR (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO_DELEGACION, PRECIO_ATLETA) VALUES (1, 1, TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-07-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 5, 50000);
|
||||
|
||||
UPDATE HOSPEDAR SET PRECIO_DELEGACION = 5 WHERE (ID_HOTEL = 1 AND ID_DELEGACION = 1);
|
||||
UPDATE HOSPEDAR SET PRECIO_DELEGACION = 5 WHERE (ID_HOTEL = 1 AND ID_DELEGACION = 1 AND FECHA_INICIO = '2020-07-09 00:00:00');
|
||||
|
||||
UPDATE HOSPEDAR SET PRECIO_ATLETA = 50000 WHERE (ID_HOTEL = 1 AND ID_DELEGACION = 1);
|
||||
UPDATE HOSPEDAR SET PRECIO_ATLETA = 50000 WHERE (ID_HOTEL = 1 AND ID_DELEGACION = 1 AND FECHA_INICIO = '2020-07-09 00:00:00');
|
||||
|
10
vista.sql
Normal file
10
vista.sql
Normal file
@ -0,0 +1,10 @@
|
||||
-- Parte 1 Crear una vista que trae la cantidad maxima de atletas asociados a un pais que compitan en Atletismo
|
||||
CREATE OR REPLACE VIEW MAX_ATLETA_ATLETISMO_PAIS AS
|
||||
SELECT P.ID_PAIS, P.NOMBRE, COUNT(*) AS CANTIDAD_ATLETA
|
||||
FROM COMPETENCIA C
|
||||
LEFT JOIN PARTICIPAR_COMPETENCIA PC ON (C.ID_COMPETENCIA = PC.ID_COMPETENCIA)
|
||||
LEFT JOIN ATLETA A ON A.ID_ATLETA = PC.ID_ATLETA
|
||||
INNER JOIN DELEGACION D ON (D.ATLETA = A.ID_ATLETA)
|
||||
INNER JOIN PAIS P ON (P.ID_PAIS = D.PAIS)
|
||||
WHERE TIPO = (SELECT TD.ID_TIPO FROM TIPOS_DEPORTES TD WHERE (UPPER(TD.DESCRIPCION) = 'ATLETISMO'))
|
||||
GROUP BY (P.ID_PAIS, P.NOMBRE);
|
Loading…
Reference in New Issue
Block a user