Guest User

Untitled

a guest
Apr 20th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.17 KB | None | 0 0
  1. ---Primer 1
  2. Prikazati mbr, ime, prz, plt, za prva tri radnika po visini plt - u nerastucem redosledu plt
  3.  
  4. SELECT r.mbr, r.ime, r.prz, r.plt
  5. FROM radnik r
  6. WHERE ( SELECT COUNT (*) FROM radnik r1 WHERE r1.plt > r.plt) <3
  7.  
  8. ---Primer 2
  9. za svakog rukovodioca projekta prikazati mbr, ime, prz i prosecan broj casova msesecnog angazovanja sa projekatata
  10. na kojima radi i kojima rukovodi
  11.  
  12. SELECT r.mbr, r.ime, r.prz. avg(rp.brc)
  13. FROM radnik r, radproj, rp
  14. WHERE r.mbr=pr.mbr
  15. GROUP BY r.mbr, r.ime, r.prz
  16. HAVING r.mbr IN (SELECT DISTINCT ruk FROM projekat)
  17.  
  18. bolja varijanta prethodnog primera
  19. SELECT r.mbr, r.ime, r.prz, avg(rp.brc)
  20. FROM radnik r, radproj rp, projekat p
  21. WHERE r.mbr=rp.mbr AND r.mbr=p.ruk AND p.spr=rp.spr
  22. GROUP BY r.mbr, r.ime, r.prz
  23.  
  24. ---Primer 3
  25. za svaki projekat spr, nap, prosecan broj casova mesecnog angazovanja na projektu i broj radnika na projektu.
  26. Ako je taj broj radnika > 3 i ako je taj prosecan broj casova mesecnog angazovanja < prosecnog broja casova mesecnog
  27. angazovanja rukovodioca tog projekta
  28.  
  29. SELECT p.spr, p.nap, avg(rp.brc), COUNT(*)
  30. FROM projekat p, radproj rp
  31. WHERE p.spr=rp.spr
  32. GROUP BY p.spr, p.nap, p.ruk
  33. HAVING COUNT(*) > 3 AND avg(rp.brc) < ( SELECT avg (rp1.brc) FROM radproj r1 WHERE rp1.mbr=p.ruk)
  34.  
  35. ---Primer 4
  36. Za svakog rukovodioca projekta prikazati mbr, ime, prz, plt. Ako mu je plt > prosecne rukovodi sa bar 3 projekta i
  37. prosecni broj casova mesecnog angazovanja na projektima kojim rukovodi i radi je < od prosecnog broja mesecnog
  38. angazovanja svih radnika tih projekata
  39.     primer :
  40.     MBR     SPR     BRC
  41.     10      10      20
  42.     10      20
  43.     10      30      25 //prosecan broj casova angazovanja za tog radnika
  44.     10      40
  45.     10      50      30
  46.     20      10
  47.     30      10
  48.     20      30
  49.     40      30
  50.     50      50
  51.    
  52. SELECT r.mbr, r.ime, r.prz, r. plt
  53. FROM radnik r, radproj rp, projekat p
  54. WHERE r.mbr=rp.mbr AND r.mbr=p.ruk AND rp.spr=p.spr
  55. GROUP BY r.mbr, r.ime, r.prz, r.plt
  56. HAVING COUNT(*) >=3 AND r.plt > (SELECT avg(plt) FROM radnik) AND avg(rp.brc) <
  57.         (SELECT avg(rp1.brc) FROM radproj pr1, projekat p1 WHERE rp1.spr=p1.spr AND r.mbr=p1.ruk AND r.mbr=rp1.mbr)
  58.        
  59. ---Primer 5
  60. Za svaki projekta prikazati spr, naziv ptojekta, mbr njegovog rukovodioca. Njegovo ime i prezime ako je suma
  61. casova na tom projektu < sume casova njegovog rukovodioca.(svi projekti na kojima radi)
  62.  
  63. SELECT p.spr, p.nao, r.mbr, r.ime, r.prz
  64. FROM projekat p, radnik r, radproj rp, radproj rp1
  65. WHERE p.ruk=r.mbr AND p.spr=rp.spr AND r.mbr=rp1.mbr
  66. GROUP BY p.spr, p.nap, r.mbr, r.ime, r.prz
  67. HAVING SUM(rp.brc) <( SELECT SUM(rp1.brc) FROM radproj rp1 WHERE rp1.mbr=r.mbr )
  68.  
  69.  
  70. ---Lekcija :   Pogledi
  71. SINTAKSA {
  72.         CREATE VIEW ime [(lista_obelezja)]
  73.         SELECT upit
  74.  
  75. }
  76.  
  77. ---primer:
  78. primer za pravljenje pogleda koji ce skladistiti informacije o prosecima vezanim za ranika
  79.  
  80. CREATE VIEW proseci(mbr, imre, prz, brp, pma)
  81. AS SELECT r.mbr, r.ime, r.prz, COUNT(*), avg(rp.brc)
  82.     FROM radnik r, radproj rp
  83.     WHERE r.mbr=rp.mbr
  84.     GROUP BY r.mbr, r.ime, r.prz
  85.    
  86. ---Primer 1:
  87. za sve radnike koje zaradjuju vise od proseka a radi na manje od 3 projekta, prikazati mbr, ime, prz, i prosecno
  88. mesecno angazovanje
  89.  
  90. SELECT pr.mbr, pr.ime, pr.prz, pr.pma
  91. FROM proseci pr, radnik r
  92. WHERE pr.brp < 3 AND pr.mbr = r.mbr AND r.plt > ( SELECT avg(plt) FROM radnik)
  93.  
  94.  
  95.  
  96. ---primer 2:
  97. za svakog rukovodioca projekta koji zaradjuje vise od sefa, a prosecno mesecno angazovanje na projektima na kojima
  98. radi i i rukovodi mu je < prosecnog mesecnog angazovanja svih rukovodioca projekata. Prikazi mbr, ime, prz, plt i
  99. broj projekata koji rukovodi i mesecno prosecno angazovanje
  100.  
  101. CREATE VIEW rukproj (mbr, ime, prz, bpr //broj projekata kojima rukovodi, pmarr //promescno mesecno angazovanje
  102. gde samo rukovodi)
  103. AS SELECT r.mbr, r.ime, r.prez COUNT(*), avg(rp.brc)
  104. FROM radnik r, radproj rp, projekat p
  105. WHERE   r.mbr=rp.mbr AND r.mbr=p.ruk AND p.spr=rp.spr
  106. GROUP BY r.mbr, r.ime, r.prz
  107.  
  108. SELECT rk.mbr, rk.ime, rk.prz, rk.plt, rk.brp, rk.pmarr
  109. FROM rukproj rk, radnik r, radnik r1
  110. WHERE rk.mbr=r.mbr AND r.sef=rk.mbr AND r.plt > r1.plt AND rk.pmarr < ( SELECT avg(pmarr) FROM rukproj)
  111.  
  112. //nalazenje prosecnog broja casova angazovanja svih rukovodilaca
  113. SELECT avg (rp.brc)
  114. FROM radproj rp
  115. WHERE pr.mbr IN ( SELECT DISTINCT ruk FROM projekat)
Add Comment
Please, Sign In to add comment