Commit 1fa95ebb authored by Sylvain Lesage's avatar Sylvain Lesage

corrección de la función de insert, y mover al otro script

parent bf692940
......@@ -103,3 +103,40 @@ JOIN (
SELECT c.* FROM public.candidatos AS c
JOIN public.elecciones AS e USING ("id_eleccion")
WHERE e.ano=2014;
-------------------------------------------
-- Paso 4 - creación de la función de inserción de un resultado
-------------------------------------------
-- Function: public.f_insert_resultado_2014_plurinacional_votos(integer, integer, integer)
-- entradas:
-- * id_partido
-- * id_dpa
-- * resultado
CREATE OR REPLACE FUNCTION public.f_insert_resultado_2014_plurinacional_votos(
_id_partido integer
, _id_dpa integer
, _resultado integer) RETURNS int
AS $$
DECLARE
id_val int;
BEGIN
INSERT INTO public.resultados (id_eleccion, id_candidato, id_partido, id_tipo_partido, id_dpa, id_tipo_dpa, id_tipo_resultado, resultado)
SELECT e.id_eleccion, c.id_candidato, c.id_partido, c.id_tipo_partido, d.id_dpa, d.id_tipo_dpa, 1, _resultado
FROM (
SELECT id_eleccion FROM public.elecciones WHERE ano = 2014 AND id_tipo_eleccion=1
) AS e
JOIN (
SELECT id_eleccion, id_candidato, id_partido, id_tipo_partido FROM public.candidatos WHERE id_partido=_id_partido
) AS c ON (c.id_eleccion=e.id_eleccion)
JOIN (
SELECT id_dpa, id_tipo_dpa FROM public.dpa WHERE id_dpa=_id_dpa
) AS d ON true
RETURNING id_resultado INTO id_val;
RETURN id_val;
END;
$$
LANGUAGE plpgsql;
......@@ -2,39 +2,9 @@
-- Adición resultados de las elecciones 2014
-------------------------------------------
-- Function: public.f_insert_resultado_2014_plurinacional_votos(integer, integer, integer)
-- entradas:
-- * id_partido
-- * id_dpa
-- * resultado
CREATE OR REPLACE FUNCTION public.f_insert_resultado_2014_plurinacional_votos(
_id_partido integer
, _id_dpa integer
, _resultado integer) RETURNS int
AS $$
DECLARE
id_val int;
BEGIN
INSERT INTO public.resultados (id_eleccion, id_candidato, id_partido, id_tipo_partido, id_dpa, id_tipo_dpa, id_tipo_resultado, resultado)
SELECT e.id_eleccion, c.id_candidato, c.id_partido, c.id_tipo_partido, d.id_dpa, d.id_tipo_dpa, 1, _resultado
FROM public.resultados AS a
JOIN (
SELECT id_eleccion FROM public.elecciones WHERE ano = 2014 AND id_tipo_eleccion=1
) AS e ON true
JOIN (
SELECT id_eleccion, id_candidato, id_partido, id_tipo_partido FROM public.candidatos WHERE id_partido=_id_partido
) AS c ON (c.id_eleccion=e.id_eleccion)
JOIN (
SELECT id_dpa, id_tipo_dpa FROM public.dpa WHERE id_dpa=_id_dpa
) AS d ON true
RETURNING id_resultado INTO id_val;
RETURN id_val;
END;
$$
LANGUAGE plpgsql;
-------------------------------------------
-- Paso 1 - supresión de todos los resultados existentes
-------------------------------------------
-- Supresión de todos los resultados de la elección 2014
DELETE
......@@ -42,4 +12,8 @@ DELETE
USING public.elecciones AS e
WHERE e.ano = '2014' AND e.id_tipo_eleccion='1' AND r.id_eleccion = e.id_eleccion;
-- Llenado de todos los resultados de la elección 2014
-------------------------------------------
-- Paso 1 - llenado de los resultados de la elección 2014
-------------------------------------------
-- Por ejemplo, para ingresar el resultado 3000000 votos para el MAS en Bolivia: SELECT f_insert_resultado_2014_plurinacional_votos(25, 1, 3000000);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment