From 92edb13f49092897972ad83615389032a0e82a75 Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Thu, 16 Jul 2020 19:45:53 -0400 Subject: [PATCH 1/3] agregar el primer procedimiento --- procedures.sql | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 procedures.sql diff --git a/procedures.sql b/procedures.sql new file mode 100644 index 0000000..8cb64cf --- /dev/null +++ b/procedures.sql @@ -0,0 +1,51 @@ +-- Stored procedure 1 +-- Se usa el año para mostrar los resultados en tal año +-- Si se pasa el valor 0 por el año se muestra por todos los años en vez de un año especifico +CREATE OR REPLACE PROCEDURE CUADRO_HONOR(ANO_IN INTEGER) +IS + V_NOMBRE PAIS.NOMBRE%TYPE; + V_PUNTAJE INTEGER; + + CURSOR C_GANAR IS + SELECT + P2.NOMBRE, + SUM( + CASE + WHEN TRIM(LOWER(M.DESCRIPCION)) = 'oro' THEN + 3 + WHEN TRIM(LOWER(M.DESCRIPCION)) = 'plata' THEN + 2 + WHEN TRIM(LOWER(M.DESCRIPCION)) = 'bronce' THEN + 1 + ELSE + 0 + END + ) AS PUNTAJE + FROM GANAR G + JOIN COMPETER_POR C ON (C.ID_ATLETA = G.ID_ATLETA) + JOIN PERTENECER P ON (P.ID_DELEGACION = C.ID_DELEGACION) + JOIN PAIS P2 ON (P2.ID_PAIS = P.ID_PAIS) + JOIN MEDALLA M ON (M.ID_MEDALLA = G.ID_MEDALLA) + WHERE ( + ANO_IN = + CASE + WHEN ANO_IN != 0 THEN + EXTRACT(YEAR FROM G.FECHA) + ELSE + ANO_IN + END + ) + GROUP BY P2.NOMBRE + ORDER BY PUNTAJE DESC; +BEGIN + OPEN C_GANAR; + FETCH C_GANAR INTO V_NOMBRE, V_PUNTAJE; + DBMS_OUTPUT.PUT_LINE('País' || CHR(9) || CHR(9) || 'Puntaje'); + WHILE C_GANAR%FOUND + LOOP + DBMS_OUTPUT.PUT_LINE(V_NOMBRE || CHR(9) || CHR(9) || V_PUNTAJE); + FETCH C_GANAR INTO V_NOMBRE, V_PUNTAJE; + END LOOP; + CLOSE C_GANAR; +END; +\ From 466982a6bfe19115c123ee9b9a628552c3af97b9 Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Thu, 16 Jul 2020 20:03:51 -0400 Subject: [PATCH 2/3] arreglar el slash --- procedures.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/procedures.sql b/procedures.sql index 8cb64cf..b54ef73 100644 --- a/procedures.sql +++ b/procedures.sql @@ -48,4 +48,4 @@ BEGIN END LOOP; CLOSE C_GANAR; END; -\ +/ From 3d215ccaff0e5c333d413610727be1c11a299a2d Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Thu, 16 Jul 2020 20:38:36 -0400 Subject: [PATCH 3/3] remover trim --- procedures.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/procedures.sql b/procedures.sql index b54ef73..e4958c5 100644 --- a/procedures.sql +++ b/procedures.sql @@ -11,11 +11,11 @@ IS P2.NOMBRE, SUM( CASE - WHEN TRIM(LOWER(M.DESCRIPCION)) = 'oro' THEN + WHEN LOWER(M.DESCRIPCION) = 'oro' THEN 3 - WHEN TRIM(LOWER(M.DESCRIPCION)) = 'plata' THEN + WHEN LOWER(M.DESCRIPCION) = 'plata' THEN 2 - WHEN TRIM(LOWER(M.DESCRIPCION)) = 'bronce' THEN + WHEN LOWER(M.DESCRIPCION) = 'bronce' THEN 1 ELSE 0