-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProyectoBDV2.sql
More file actions
executable file
·135 lines (108 loc) · 4.28 KB
/
ProyectoBDV2.sql
File metadata and controls
executable file
·135 lines (108 loc) · 4.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
--2. De que partido corresponde cada representate de casilla
SELECT nombrePartido, nombPilaR, apPaternoR, apMaternoR, CURP_R
FROM representante r
INNER JOIN partido p
ON r.idpartido = p.idpartido;
--3. Que candidatos son Federales y Locales
SELECT tipocandidato,p.nombrepartido,nombPilaC, apPaternoC, apMaternoC
FROM candidato c
INNER JOIN tipocandidato t
ON c.idcandidato = t.idcandidato
INNER JOIN partido p
ON c.idpartido = p.idpartido
--4. Cantidad de Votos por cada candidato mostrando tambien su partido
SELECT COUNT( v.noVoto), p.nombrepartido, v.idcandidato, v.nombrecandidato
FROM voto v
INNER JOIN candidato c
ON v.idcandidato = c.idCandidato
INNER JOIN partido p
ON c.idpartido = p.idpartido
GROUP BY p.nombrepartido, v.nombrecandidato, v.idcandidato
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE agregarRepresentante(vidRepresentante representante.idRepresentante%type,
vidPartido representante.idPartido%type,
vnoCasillaR representante.noCasillaR%type,
vCURP_R representante.CURP_R%type,
vnombPilaR representante.nombPilaR%type,
vapPaternoR representante.apPaternoR%type,
vapMaternoR representante.apMaternoR%type,
vfotografia REPRESENTANTE.FOTOGRAFÍAR%type)
AS
vidR representante.idRepresentante%type;
BEGIN
SELECT idrepresentante INTO vidR FROM representante
WHERE idRepresentante=vidRepresentante;
IF(SQL%FOUND) THEN
dbms_output.put_line('Representante existente');
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
dbms_output.put_line('Representante no existe en el registro '||vCURP_R);
INSERT INTO representante VALUES(vidRepresentante,vidPartido,vnoCasillaR,
vCURP_R,vnombPilaR,vapPaternoR,vapMaternoR,vfotografia);
COMMIT;
dbms_output.put_line('Representante nuevo almacenado '||vCURP_R);
END;
/
CREATE OR REPLACE PROCEDURE agregarGasto(vidNomina gasto.idNomina%type,
vgastoCampaña gasto.gastoCampaña%type,
vgastoActividades gasto.gastoActividades%type)
AS
vidN gasto.idnomina%type;
BEGIN
SELECT idnomina INTO vidN FROM gasto
WHERE idnomina=vidNomina;
IF(SQL%FOUND) THEN
dbms_output.put_line('Nomina existente');
END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
dbms_output.put_line('Nomina no existe en el registro '||vidNomina);
INSERT INTO gasto VALUES(vidNomina,vgastoCampaña,vgastoActividades);
COMMIT;
dbms_output.put_line('Representante nuevo almacenado '||vidNomina);
END;
/
EXEC agregarrepresentante('R15','P6',366,'GUMM970216HDFR001','Mario','Guadarrama','Mendoza',NULL);
EXEC agregargasto('N11',1200000,300000);
--Vistas
--1. Vista de todos los condidatos y su partido
CREATE VIEW candidatos
AS
SELECT p.nombrepartido,c.nombPilaC, c.apPaternoC, c.apMaternoC
FROM candidato c, partido p
WHERE c.idpartido = p.idpartido;
SELECT * FROM candidatos;
-- 2. Vista de todos los nombres de representate de casilla con nombre de partido
CREATE VIEW representantes
AS
SELECT p.nombrePartido, r.nombPilaR, r.apPaternoR, r.apMaternoR
FROM representante r, partido p
WHERE r.idpartido = p.idpartido;
SELECT * FROM representantes
SELECT nombPilaC, apPaternoC, apMaternoC FROM candidato c
INNER JOIN partido p
ON c.idpartido = p.idpartido
-- Disparador de pago a representantes
select sysdate from dual
CREATE TABLE PAGOR(
usuario VARCHAR(10),
fecha DATE,
accion CHAR (1),
pago NUMBER
);
CREATE OR REPLACE TRIGGER pagoRepresentante
BEFORE INSERT ON representante
FOR EACH ROW
DECLARE
accion CHAR(1);
BEGIN
IF INSERTING THEN
accion:='I';
END IF;
INSERT INTO pagor VALUES
(USER,sysdate,accion,500);
dbms_output.put_line('Pago a representante realizado '||SYSDATE);
END pagoRepresentante;
/
EXEC agregarrepresentante('R13','P6',366,'SAOC970216HDFR001','Cesar','Sanchez','Ortega',NULL);
SELECT * from pagor
commit;