Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.04 KB | None | 0 0
  1.  
  2. --1. Izlistati imena i prezime svih klijenata sortirano po imenu i prezimenu.
  3. SELECT imek,przk FROM klijent ORDER BY imek,przk;
  4.  
  5. --2. Izlistati nazive tipova kredita gde je procenat izmedju 2 i 10%.
  6. SELECT nazt FROM tipkredita WHERE procenat BETWEEN 2 AND 10;
  7.  
  8. --3. Dodati ogranicenje da klijent mora biti rodjen posle 1950.
  9. ALTER TABLE klijent
  10. ADD CONSTRAINT data_check CHECK( god > to_date('01-01-1950' , 'dd-mm-yyyy'));
  11.  
  12. --4. Izlistati imena i prezimena klijenata i odobrenu sumu, za klijente koji su podigli kredit u USD valuti,
  13. --a da im je odobreno vise od proseka USD kredita.
  14. SELECT imek,przk, kr.odobizn, ROUND(avg(kr2.odobizn),2) AS prosekUSD
  15. FROM klijent kl,kredit kr,kredit kr2
  16. WHERE kl.idk = kr.klijent AND kr.val = 'USD' AND kr2.val = 'USD'
  17. GROUP BY imek,przk,kr.odobizn
  18. HAVING kr.odobizn>avg(kr2.odobizn);
  19.  
  20. --5. Ispisati klijente koji su digli kredit u Erste banci, a nisu u Intesa banci.
  21. SELECT k.idk, k.imek, k.przk FROM klijent k WHERE
  22. k.idk IN(SELECT klijent
  23.          FROM kredit kr,banka b
  24.          WHERE kr.banka = b.idb AND b.nazb = 'BancaIntesa')
  25. AND
  26. k.idk NOT IN(SELECT klijent
  27.             FROM kredit kr,banka b
  28.             WHERE kr.banka = b.idb AND b.nazb = 'Erstee Bank');
  29.  
  30. --6. Ispisati sve banke u kojima je kredite diglo vise od 3 klijenta (racuna se kada je jedna osoba digla 2 ili vise kredita).
  31. SELECT b.nazb,COUNT(banka) AS brKredita
  32. FROM kredit k,banka b
  33. WHERE b.idb = k.banka
  34. GROUP BY b.nazb
  35. HAVING COUNT(banka)>=2;
  36.  
  37. --8. Svim klijentima rodjenim pre 1960 dodati * na kraj prezimena.
  38. UPDATE klijent SET przk = przk || '*' WHERE god < '01-JAN-1960';
  39.  
  40. UPDATE klijent SET przk = TRIM(TRAILING '*' FROM przk);
  41. --9. Napraviti pogled koji sadrzi tip kredita, prosecno trazeno, prosecno odobreno za one tipove za koje je suma
  42. --odobrenog manja od 30000. (Ukljuciti tipove koji nemaju odobrene kredite i za njih staviti proseke 0)
  43. CREATE OR REPLACE VIEW inf_o_kreditima (tipKr, prosTrazeno, prosOdobreno) AS
  44. SELECT kr1.tip, ROUND(avg(kr2.trazizn),2), ROUND(avg(kr2.odobizn),2)
  45. FROM kredit kr1,kredit kr2
  46. GROUP BY kr1.tip
  47. HAVING SUM(kr2.odobizn) > 30000;
  48.  
  49. --10. Klijenti su podeljeni na grupe po godinama 1950-1965, 1966-1985, posle 1985. Za svaku grupu ispisati koliko kredita
  50. --je podigla, samo ako je grupa trazila vise od 9000 ukupno.
  51. CREATE OR REPLACE VIEW grupa_1950do1965 (brKr,tr_izn) AS
  52. SELECT COUNT(kr.idkr),SUM(kr.trazizn)
  53. FROM klijent k,kredit kr
  54. WHERE kr.klijent = k.idk AND god BETWEEN '01-JAN-1950' AND '31-DEC-1965';
  55.  
  56. CREATE OR REPLACE VIEW grupa_1966do1985 (brKr,tr_izn) AS
  57. SELECT COUNT(kr.idkr),SUM(kr.trazizn)
  58. FROM klijent k,kredit kr
  59. WHERE kr.klijent = k.idk AND god BETWEEN '01-JAN-1966' AND '31-DEC-1985';
  60.  
  61. CREATE OR REPLACE VIEW grupa_od1985 (brKr,tr_izn) AS
  62. SELECT COUNT(kr.idkr),SUM(kr.trazizn)
  63. FROM klijent k,kredit kr
  64. WHERE kr.klijent = k.idk AND god > '31-dec-1985';
  65.  
  66. SELECT brKr,tr_izn FROM grupa_1950do1965 WHERE tr_izn > 9000
  67. UNION ALL
  68. SELECT brKr,tr_izn FROM grupa_1966do1985 WHERE tr_izn > 9000
  69. UNION ALL
  70. SELECT brKr,tr_izn FROM grupa_od1985 WHERE tr_izn > 9000;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement