Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SELECT from rezervacija_dodatna_usluga_agregacija rdu inner join tip_dodatne_usluge tdu on rdu.tip_dodatne_usluge_id=tdu.tip_dodatne_usluge_id
- where aranzman_id=1 and korisnik_id=1
- DOBIJAMO SUMU ZA DODATNE USLUGE
- SELECT sum(cena) from rezervacija_dodatna_usluga_agregacija rdu
- inner join tip_dodatne_usluge tdu on rdu.tip_dodatne_usluge_id=tdu.tip_dodatne_usluge_id
- where korisnik_id=1 and aranzman_id=1
- ZA DOBIJANJE BROJA TURISTA
- SELECT broj_turista from rezervacija
- where korisnik_id=1 and aranzman_id=1
- ZA DOBIJANJE CENE ARANZMANA
- SELECT cena from aranzman
- where aranzman_id=1
- sum *(a.cena+ sum(tdu.cena))*r.broj_turista from rezervacija_dodatna_usluga_agregacija rez inner join tip_dodatne_usluge tdu on rez.tip_dodatne_usluge_id=tdu.tip_dodatne_usluge_id,rezervacija r, aranzman a
- where rez.korisnik_id=1 and rez.aranzman_id=1 and r.korisnik_id=1 and r.aranzman_id=1 and a.aranzman_id=1
- DOBIJENE TRI TRAZENE KOLONE
- SELECT tdu.cena, r.broj_turista, a.cena
- from rezervacija_dodatna_usluga_agregacija rez inner join tip_dodatne_usluge tdu on rez.tip_dodatne_usluge_id=tdu.tip_dodatne_usluge_id,rezervacija r, aranzman a
- where rez.korisnik_id=1 and rez.aranzman_id=1 and r.korisnik_id=1 and r.aranzman_id=1 and a.aranzman_id=1
- update rezervacija
- set ukupna_cena=(select ((sum(ukupna_cena_dodatnih)+200)*7) as ukupna_cena1
- from (SELECT tdu.cena as ukupna_cena_dodatnih, r.broj_turista as ukupan_broj_turista, a.cena as cena_aranzmana
- from rezervacija_dodatna_usluga_agregacija rez
- inner join tip_dodatne_usluge tdu on rez.tip_dodatne_usluge_id=tdu.tip_dodatne_usluge_id,rezervacija r, aranzman a
- where rez.korisnik_id=1 and rez.aranzman_id=1 and r.korisnik_id=1 and r.aranzman_id=1 and a.aranzman_id=1) as new_table)
- where aranzman_id=1 and korisnik_id=1
- KONACNO RESENJE
- select (sum(ukupna_cena_dodatnih) + (select cena from aranzman where aranzman_id=1))*
- (select broj_turista from rezervacija where korisnik_id=1 and aranzman_id=1) as ukupna_cena
- from (SELECT tdu.cena as ukupna_cena_dodatnih
- from rezervacija_dodatna_usluga_agregacija rez
- inner join tip_dodatne_usluge tdu on rez.tip_dodatne_usluge_id=tdu.tip_dodatne_usluge_id
- where rez.korisnik_id=1 and rez.aranzman_id=1) as new_table
- CREATE OR REPLACE PROCEDURE izracunaj_ukupnu_cenu(INT, INT)
- LANGUAGE plpgsql
- AS $$
- BEGIN
- UPDATE rezervacija
- SET ukupna_cena =(SELECT (SUM(ukupna_cena_dodatnih) + (SELECT cena FROM aranzman WHERE aranzman_id=$1))*
- (SELECT broj_turista FROM rezervacija WHERE korisnik_id=$2 AND aranzman_id=$1) AS ukupna_cena
- FROM (SELECT tdu.cena AS ukupna_cena_dodatnih
- FROM rezervacija_dodatna_usluga_agregacija rez
- INNER JOIN tip_dodatne_usluge tdu ON rez.tip_dodatne_usluge_id=tdu.tip_dodatne_usluge_id
- WHERE rez.korisnik_id=$2 AND rez.aranzman_id=$1) AS new_table)
- WHERE korisnik_id=$2 and aranzman_id=$1;
- END;
- $$;
- CALL izracunaj_ukupnu_cenu(1,1);
- CREATE OR REPLACE TRIGGER uk_cena_parametri
- BEFORE INSERT on rezervacija
- RETURNS TRIGGER AS
- $$
- BEGIN
- rez.aranzman_id=NEW.aranzman_id;
- rez.korisnik_id=NEW.korisnik_id
- END;
- $$
- LANGUAGE 'plpgsql';
- CREATE OR REPLACE FUNCTION ukupna_cena()
- RETURNS TRIGGER AS
- $$
- BEGIN
- NEW.ukupna_cena=izracunaj_ukupnu_cenu(NEW.aranzman_id, NEW.korisnik_id);
- RETURN NEW;
- END;
- $$
- language 'plpgsql'
- CREATE TRIGGER nakon_inserta_rezervacije_izracunaj_uc
- AFTER INSERT ON rezervacija
- for each row
- EXECUTE PROCEDURE ukupna_cena();
- CREATE TRIGGER ukupna_cena_trigger
- AFTER INSERT
- ON rezervacija_dodatna_usluga_agregacija FOR EACH ROW
- BEGIN
- CALL izracunaj_ukupnu_cenu (
- NEW.aranzman_id,
- NEW.korisnik_id
- );
- END$$
- create or replace function uk_cena()
- returns trigger as
- $$
- BEGIN
- CALL izracunaj_ukupnu_cenu (
- NEW.aranzman_id,
- NEW.korisnik_id
- );
- END;
- $$
- language 'plpgsql'
- CREATE trigger uk_cena_trigger
- AFTER INSERT ON rezervacija_dodatna_usluga_agregacija
- FOR EACH ROW
- execute procedure uk_cena();
- select ukupno FROM
- (SELECT tdu.cena AS ukupna_cena_dodatnih
- FROM rezervacija_dodatna_usluga_agregacija rez
- INNER JOIN tip_dodatne_usluge tdu ON rez.tip_dodatne_usluge_id=tdu.tip_dodatne_usluge_id
- WHERE rez.aranzman_id=2 AND rez.korisnik_id=3 limit 3) AS ukupno
- order by ukupno limit 2
- select korisnicko_ime, naziv, naziv_aranzmana from regular_dodatna_usluga r
- inner join korisnik k on r.korisnik_id=k.korisnik_id
- inner join tip_dodatne_usluge tdu on r.tip_dodatne_usluge_id=tdu.tip_dodatne_usluge_id
- inner join aranzman a on r.aranzman_id=a.aranzman_id
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement