-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscripts.sql
32 lines (28 loc) · 900 Bytes
/
scripts.sql
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
CREATE TABLE empenho(
id serial PRIMARY KEY,
valor NUMERIC,
codacao VARCHAR,
coddata INTEGER,
codfavorecido VARCHAR,
codunidadegestora INTEGER,
FOREIGN KEY (codacao) REFERENCES Acao(codigoAcao),
FOREIGN KEY (coddata) REFERENCES Data(codigo),
FOREIGN KEY (codfavorecido) REFERENCES Favorecido(codigo),
FOREIGN KEY (codunidadegestora) REFERENCES Unidadegestora(codigounidadegestora)
);
CREATE OR REPLACE FUNCTION insereEmpenhos()
RETURNS VOID AS $$
DECLARE
rec RECORD;
BEGIN
FOR rec IN
SELECT SUM(valor) as soma, codacao,coddata,codfavorecido,codunidadegestora
FROM EmpenhoTemporario
GROUP BY (codacao,coddata,codfavorecido,codunidadegestora)
LOOP
INSERT INTO EMPENHO (codacao,coddata,codfavorecido,codunidadegestora,valor)
VALUES (rec.codacao,rec.coddata,rec.codfavorecido,rec.codunidadegestora,rec.soma);
END LOOP;
DELETE FROM EMPENHOTEMPORARIO;
END $$
LANGUAGE PLPGSQL;