Advertisement
gavrilo93

BP1_vezbe04

Nov 14th, 2014
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.56 KB | None | 0 0
  1. CREATE TABLE faze_projekta(
  2.     Spr INTEGER ,
  3.     Sfp INTEGER NOT NULL,
  4.     Rukfp INTEGER NOT NULL,
  5.     Nafp VARCHAR(30) UNIQUE,
  6.     Datp DATE,
  7.     CONSTRAINT faze_projekta_PK PRIMARY KEY (Spr, Sfp),
  8.     CONSTRAINT faze_projekta_proj_FK FOREIGN KEY (Spr) REFERENCES projekat (Spr),
  9.     CONSTRAINT faze_projekta_rad_FK FOREIGN KEY (rukfp) REFERENCES radnik (mbr)
  10.  
  11. );
  12.  
  13. ALTER TABLE faze_projekta
  14. ADD CONSTRAINT faze_projekta_junik UNIQUE(datp);
  15.  
  16. ALTER TABLE faze_projekta
  17. DROP CONSTRAINT faze_projekta_junik;
  18.  
  19. ALTER TABLE faze_projekta
  20. ADD (datz DATE);
  21.  
  22. ALTER TABLE faze_projekta
  23. ADD CONSTRAINT faze_projekta_datz CHECK (datz>datp);
  24.  
  25. INSERT INTO faze_projekta VALUES (10, 1, 100, 'prvi deo prvog','20-jan-2013', '20-dec-2013');
  26. INSERT INTO faze_projekta VALUES (10, 2, 50, 'drugi deo prvog','21-dec-2013', '20-dec-2014');
  27. INSERT INTO faze_projekta VALUES (20, 1, 70, 'prvi deo drugog','20-jan-201', '5-sep-2013');
  28.  
  29. SELECT p.spr, p.nap, ru.ime, ru.prz, s.prz Sef, fp.nafp,
  30. nvl(rfp.ime, 'nema rukovodioca')Ime_rukovodioca, nvl(rfp.prz, 'nema rukovodioca')Prezime_rukovodioca
  31. FROM  projekat p INNER JOIN radnik ru ON p.ruk = ru.mbr
  32.       LEFT OUTER JOIN radnik s ON ru.sef = s.mbr
  33.       LEFT OUTER JOIN faze_projekta fp ON p.spr = fp.spr
  34.       LEFT OUTER JOIN radnik rfp ON fp.rukfp = rfp.mbr;
  35.  
  36.  
  37. CREATE OR REPLACE VIEW
  38. plate_radnika(Ime, Prezime, Plata) AS
  39. SELECT ime, prz, plt
  40. FROM radnik;
  41.  
  42. SELECT * FROM plate_radnika;
  43.  
  44. CREATE OR REPLACE VIEW
  45. broj_rada(MBR, Broj_Sati) AS
  46. SELECT r.mbr, nvl(SUM(rp.brc),0)
  47. FROM radnik r, radproj rp
  48. WHERE r.mbr = rp.mbr(+)
  49. GROUP BY r.mbr;
  50.  
  51. SELECT * FROM BROJ_RADA;
  52.  
  53. SELECT * FROM broj_rada
  54. ORDER BY mbr;
  55.  
  56. CREATE OR REPLACE VIEW
  57. sefovi(MBR, Prezime, Ime,Ukupno_radnika, Ukupno_angazovanje) AS
  58.  
  59. SELECT s.mbr, s.prz, s.ime, COUNT(r.mbr), br.broj_sati
  60. FROM  radnik r INNER JOIN radnik s ON r.sef = s.mbr
  61.       INNER JOIN broj_rada br ON br.mbr = s.mbr
  62.       GROUP BY s.mbr, s.ime, s.prz, br.broj_sati;
  63.  
  64. SELECT * FROM sefovi;
  65.  
  66. SELECT SUM(Ukupno_angazovanje) AS UkAngSef
  67. FROM sefovi;
  68.  
  69. CREATE SEQUENCE seq_mbr
  70.   INCREMENT BY 10
  71.   START WITH 240
  72.   nocycle
  73.   cache 10;
  74.  
  75.   INSERT INTO radnik (Mbr, prz, ime, god) VALUES (seq_mbr.NEXTVAL, 'Misic', 'Petar', SYSDATE);
  76.  
  77.   SELECT seq_mbr.currval
  78.   FROM sys.dual;
  79.  
  80.   SELECT * FROM sys.dual;
  81.  
  82.   SELECT TABLE_NAME
  83.   FROM user_tables;
  84.  
  85.   SELECT Mbr, prz, ime, to_char(god, 'dd/mm/yyyy')
  86.   FROM radnik;
  87.  
  88. SELECT r.mbr, r.prz, rp.spr, COUNT(dr.mbr)
  89. FROM radnik r INNER JOIN  radproj rp ON r.mbr = rp.mbr
  90.     INNER JOIN radnik dr ON dr.mbr = rp.mbr
  91. GROUP BY r.mbr, r.prz, rp.spr;
  92.  
  93.  
  94. SELECT r.mbr, r.ime, r.prz, rp1.spr, COUNT (rp2.mbr)-1 ostali
  95. FROM radnik r, radproj rp1, radproj rp2
  96. WHERE r.mbr =rp1.mbr AND rp1.spr =rp2.spr
  97. GROUP BY r.mbr, r.ime, r.prz, rp1.spr;
  98.  
  99. WITH projinfo AS(
  100.   SELECT rp.spr, COUNT(rp.mbr) AS rad_broj
  101.   FROM radproj rp GROUP BY rp.spr)
  102.   SELECT r.mbr, r.ime, r.prz, rp.spr, pi.rad_broj-1 ostali
  103.   FROM radnik r, radproj rp, projinfo pi
  104.   WHERE r.mbr = rp.mbr AND rp.spr = pi.spr;
  105.  
  106.  
  107.   WITH ukupno_angazovanje AS(
  108.     SELECT spr, SUM(brc)UkAng FROM radproj
  109.     GROUP BY spr)
  110.  SELECT r.mbr, r.prz, r.ime, rp.spr, to_char(round((rp.brc/ua.UkAng),4)*100 ) || '%' Udeo_U_Angazovanju
  111.  FROM radnik r, radproj rp, ukupno_angazovanje ua
  112.  WHERE r.mbr = rp.mbr AND rp.spr = ua.spr;
  113.  
  114.  WITH projinfo AS(
  115.   SELECT rp.spr, SUM(rp.brc) AS cas_suma
  116.   FROM radproj rp GROUP BY rp.spr)
  117.  
  118.   SELECT r.mbr, r.ime, r.prz, rp.spr, round((rp.brc/pi.cas_suma),2) udeo
  119.   FROM radnik r, radproj rp, projinfo pi
  120.   WHERE r.mbr = rp.mbr AND rp.spr=pi.spr;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement