Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.13 KB | None | 0 0
  1. /* 1 */
  2. CREATE VIEW ZAD1 AS
  3. SELECT U.NAZWISKO, U.IMIE, K.NAZWA, AVG(O.OCENA) "SREDNIA"
  4. FROM UCZEN U, KLASA K, OCENA O
  5. WHERE U.ID_UCZEN = O.ID_UCZEN AND U.ID_KLASA = K.ID_KLASA AND
  6. U.ID_UCZEN = (
  7. SELECT U.ID_UCZEN
  8. FROM UCZEN U, OCENA O, KLASA K
  9. WHERE U.ID_UCZEN = O.ID_UCZEN AND U.ID_KLASA = &id_klasy
  10. GROUP BY U.ID_UCZEN
  11. ORDER BY AVG(O.OCENA)
  12. FETCH FIRST ROW ONLY)
  13. GROUP BY U.NAZWISKO, U.IMIE, K.NAZWA;
  14.  
  15. /* 2 (NIEUKONCZONE) */
  16. SELECT N.NAZWISKO, N.IMIE FROM NAUCZYCIEL N, KLASA K WHERE N.ID_NAUCZ = K.ID_NAUCZ AND
  17. K.ID_KLASA = (
  18. SELECT K.ID_KLASA
  19. FROM UCZEN U, KLASA K
  20. WHERE U.ID_KLASA = K.ID_KLASA
  21. ORDER BY U.DATA_UR DESC
  22. FETCH FIRST ROW ONLY);
  23.  
  24. /* 3 */
  25. SELECT DISTINCT P.NAZWA
  26. FROM PRZEDMIOT P, KLASA K, NAUCZYCIEL N, UCZEN U
  27. WHERE U.ID_KLASA = K.ID_KLASA AND P.ID_PRZED = N.ID_PRZED AND N.ID_NAUCZ = K.ID_NAUCZ
  28. HAVING COUNT(U.ID_UCZEN) = (
  29. SELECT COUNT(*)
  30. FROM UCZEN U
  31. GROUP BY U.ID_KLASA
  32. ORDER BY COUNT(*) DESC
  33. FETCH FIRST ROW ONLY)
  34. GROUP BY P.NAZWA, K.ID_KLASA;
  35.  
  36. /* 4 */
  37. SELECT O.ID_OCENA, O.DATA FROM OCENA O
  38. WHERE O.DATA >
  39. (SELECT O.DATA
  40. FROM OCENA O, UCZEN U
  41. WHERE O.ID_UCZEN = U.ID_UCZEN AND U.IMIE = 'JAKUB' AND U.NAZWISKO = 'LIPKA'
  42. ORDER BY O.DATA
  43. FETCH FIRST ROW ONLY)
  44. AND O.DATA <
  45. (SELECT O.DATA
  46. FROM OCENA O, UCZEN U
  47. WHERE O.ID_UCZEN = U.ID_UCZEN AND U.IMIE = 'JAKUB' AND U.NAZWISKO = 'LIPKA'
  48. ORDER BY O.DATA DESC
  49. FETCH FIRST ROW ONLY);
  50.  
  51. /* 5 (chyba ok)*/
  52. UPDATE OCENA
  53. SET O.OCENA = O.OCENA + 0.5
  54. WHERE O.ID_OCENA IN
  55. (SELECT O.ID_OCENA
  56. FROM UCZEN U, OCENA O, PRZEDMIOT P
  57. WHERE U.ID_UCZEN = O.ID_UCZEN AND O.ID_PRZED = P.ID_PRZED AND P.NAZWA = 'MATEMATYKA' AND ADD_MONTHS(O.DATA, 1) > SYSDATE
  58. HAVING COUNT(*) > (SELECT COUNT(*) FROM OCENA O, PRZEDMIOT P WHERE O.ID_PRZED = P.ID_PRZED AND P.NAZWA = 'MATEMATYKA') / (SELECT COUNT(*) FROM KLASA)
  59. GROUP BY O.ID_OCENA);
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. CREATE VIEW PERSPEKTYWA AS
  70. (SELECT P.NAZWA FROM PRZEDMIOT P, NAUCZYCIEL N WHERE P.ID_PRZED = N.ID_NAUCZ AND N.ID_NAUCZ IN
  71. (SELECT K.ID_KLASA FROM KLASA K, NAUCZYCIEL N, PRZEDMIOT P WHERE K.ID_NAUCZ = N.ID_NAUCZ AND N.ID_PRZED = P.ID_PRZED
  72. GROUP BY K.ID_KLASA ORDER BY COUNT(P.ID_PRZED) DESC FETCH FIRST ROW ONLY))
  73.  
  74. SELECT N.IMIE, N.NAZWISKO FROM NAUCZYCIEL N, PRZEDMIOT P WHERE N.ID_PRZED = P.ID_PRZED AND P.ID_PRZED IN
  75. (SELECT P.ID_PRZED FROM PRZEDMIOT P, KLASA K, NAUCZYCIEL N WHERE P.ID_PRZED = N.ID_PRZED AND K.ID_NAUCZ = N.ID_NAUCZ AND K.ID_KLASA IN
  76. (SELECT K.ID_KLASA FROM KLASA K, UCZEN U WHERE U.ID_KLASA = K.ID_KLASA AND U.ID_UCZEN IN
  77. (SELECT U.ID_UCZEN FROM UCZEN U, KLASA K WHERE U.ID_KLASA = K.ID_KLASA AND K.ID_KLASA IN
  78. (SELECT K.ID_KLASA FROM KLASA K, UCZEN U WHERE U.ID_KLASA = K.ID_KLASA AND U.ID_UCZEN IN
  79. (SELECT ID_UCZEN FROM UCZEN WHERE DATA_UR IN (SELECT MAX(DATA_UR) FROM UCZEN))))))
  80.  
  81. SELECT K.NAZWA FROM KLASA K, NAUCZYCIEL N WHERE N.ID_NAUCZ = K.ID_NAUCZ AND N.ID_NAUCZ IN
  82. (SELECT N.ID_NAUCZ FROM NAUCZYCIEL N, OCENA O WHERE N.ID_NAUCZ = O.ID_NAUCZ AND O.OCENA = 5 GROUP BY N.ID_NAUCZ HAVING(COUNT(O.ID_OCENA)) >
  83. (SELECT AVG(COUNT(O.ID_OCENA)) FROM OCENA O, KLASA K, NAUCZYCIEL N WHERE O.ID_NAUCZ = N.ID_NAUCZ AND K.ID_NAUCZ = N.ID_NAUCZ
  84. GROUP BY K.ID_KLASA))
  85.  
  86. SELECT DISTINCT N.IMIE, N.NAZWISKO FROM NAUCZYCIEL N, KLASA K, OCENA O WHERE O.ID_NAUCZ = N.ID_NAUCZ AND N.ID_NAUCZ = K.ID_NAUCZ AND K.ID_KLASA IN
  87. (SELECT K.ID_KLASA FROM KLASA K, OCENA O, NAUCZYCIEL N WHERE K.ID_NAUCZ = N.ID_NAUCZ AND N.ID_NAUCZ = O.ID_NAUCZ GROUP BY K.ID_KLASA HAVING COUNT(O.ID_OCENA) =
  88. (SELECT MAX(COUNT(O.ID_OCENA)) FROM OCENA O, KLASA K, NAUCZYCIEL N WHERE O.ID_NAUCZ = N.ID_NAUCZ AND N.ID_NAUCZ = K.ID_NAUCZ
  89. GROUP BY K.ID_KLASA))
  90.  
  91. UPDATE OCENA SET OCENA = OCENA - 0.5 WHERE ID_UCZEN IN
  92. (SELECT U.ID_UCZEN FROM UCZEN U, OCENA O WHERE U.ID_UCZEN = O.ID_UCZEN GROUP BY U.ID_UCZEN HAVING(COUNT(O.ID_OCENA)) =
  93. (SELECT MAX(COUNT(O.ID_OCENA)) FROM UCZEN U, OCENA O WHERE U.ID_UCZEN = O.ID_UCZEN GROUP BY U.ID_UCZEN))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement