Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --1. Izlistati imena i prezime svih klijenata sortirano po imenu i prezimenu.
- SELECT imek,przk FROM klijent ORDER BY imek,przk;
- --2. Izlistati nazive tipova kredita gde je procenat izmedju 2 i 10%.
- SELECT nazt FROM tipkredita WHERE procenat BETWEEN 2 AND 10;
- --3. Dodati ogranicenje da klijent mora biti rodjen posle 1950.
- ALTER TABLE klijent
- ADD CONSTRAINT data_check CHECK( god > to_date('01-01-1950' , 'dd-mm-yyyy'));
- --4. Izlistati imena i prezimena klijenata i odobrenu sumu, za klijente koji su podigli kredit u USD valuti,
- --a da im je odobreno vise od proseka USD kredita.
- SELECT imek,przk, kr.odobizn, ROUND(avg(kr2.odobizn),2) AS prosekUSD
- FROM klijent kl,kredit kr,kredit kr2
- WHERE kl.idk = kr.klijent AND kr.val = 'USD' AND kr2.val = 'USD'
- GROUP BY imek,przk,kr.odobizn
- HAVING kr.odobizn>avg(kr2.odobizn);
- --5. Ispisati klijente koji su digli kredit u Erste banci, a nisu u Intesa banci.
- SELECT k.idk, k.imek, k.przk FROM klijent k WHERE
- k.idk IN(SELECT klijent
- FROM kredit kr,banka b
- WHERE kr.banka = b.idb AND b.nazb = 'BancaIntesa')
- AND
- k.idk NOT IN(SELECT klijent
- FROM kredit kr,banka b
- WHERE kr.banka = b.idb AND b.nazb = 'Erstee Bank');
- --6. Ispisati sve banke u kojima je kredite diglo vise od 3 klijenta (racuna se kada je jedna osoba digla 2 ili vise kredita).
- SELECT b.nazb,COUNT(banka) AS brKredita
- FROM kredit k,banka b
- WHERE b.idb = k.banka
- GROUP BY b.nazb
- HAVING COUNT(banka)>=2;
- --8. Svim klijentima rodjenim pre 1960 dodati * na kraj prezimena.
- UPDATE klijent SET przk = przk || '*' WHERE god < '01-JAN-1960';
- UPDATE klijent SET przk = TRIM(TRAILING '*' FROM przk);
- --9. Napraviti pogled koji sadrzi tip kredita, prosecno trazeno, prosecno odobreno za one tipove za koje je suma
- --odobrenog manja od 30000. (Ukljuciti tipove koji nemaju odobrene kredite i za njih staviti proseke 0)
- CREATE OR REPLACE VIEW inf_o_kreditima (tipKr, prosTrazeno, prosOdobreno) AS
- SELECT kr1.tip, ROUND(avg(kr2.trazizn),2), ROUND(avg(kr2.odobizn),2)
- FROM kredit kr1,kredit kr2
- GROUP BY kr1.tip
- HAVING SUM(kr2.odobizn) > 30000;
- --10. Klijenti su podeljeni na grupe po godinama 1950-1965, 1966-1985, posle 1985. Za svaku grupu ispisati koliko kredita
- --je podigla, samo ako je grupa trazila vise od 9000 ukupno.
- CREATE OR REPLACE VIEW grupa_1950do1965 (brKr,tr_izn) AS
- SELECT COUNT(kr.idkr),SUM(kr.trazizn)
- FROM klijent k,kredit kr
- WHERE kr.klijent = k.idk AND god BETWEEN '01-JAN-1950' AND '31-DEC-1965';
- CREATE OR REPLACE VIEW grupa_1966do1985 (brKr,tr_izn) AS
- SELECT COUNT(kr.idkr),SUM(kr.trazizn)
- FROM klijent k,kredit kr
- WHERE kr.klijent = k.idk AND god BETWEEN '01-JAN-1966' AND '31-DEC-1985';
- CREATE OR REPLACE VIEW grupa_od1985 (brKr,tr_izn) AS
- SELECT COUNT(kr.idkr),SUM(kr.trazizn)
- FROM klijent k,kredit kr
- WHERE kr.klijent = k.idk AND god > '31-dec-1985';
- SELECT brKr,tr_izn FROM grupa_1950do1965 WHERE tr_izn > 9000
- UNION ALL
- SELECT brKr,tr_izn FROM grupa_1966do1985 WHERE tr_izn > 9000
- UNION ALL
- SELECT brKr,tr_izn FROM grupa_od1985 WHERE tr_izn > 9000;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement