· 6 years ago · Jun 03, 2019, 12:22 PM
1CREATE TABLE alior.logi (
2 id serial PRIMARY KEY,
3 data_stworzednia timestamp,
4 info varchar(255)
5);
6
7
8create or replace function obliczSaldoKlienta(id_klienta bigint,data_poczatkowa date,data_koncowa date) returns money
9 language plpgsql
10 AS $$
11BEGIN
12
13 IF $2 > $3 THEN
14 INSERT INTO alior.logi (data_stworzednia, info) values (NOW(), 'Blad');
15 RETURN NULL;
16 END IF;
17
18 IF NOT EXISTS (SELECT 1 FROM klienci WHERE id_klienta = $1) THEN
19 INSERT INTO alior.logi (data_stworzednia, info) values (NOW(), 'Blad');
20 RETURN NULL;
21 END IF;
22
23 IF NOT EXISTS (SELECT 1 FROM rachunki_bankowe WHERE id_klienta = $1) THEN
24 INSERT INTO alior.logi (data_stworzednia, info) values (NOW(), 'Blad');
25 RETURN NULL;
26 END IF;
27
28 RETURN (SELECT COALESCE(SUM(kwota), 0.00) FROM alior.transakcje a_t join alior.rachunki_bankowe a_rb on a_t.nrb = a_rb.nrb WHERE id_klienta = $1);
29END; $$ LANGUAGE plpgsql;