Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 4.91 KB | None | 0 0
  1. -- 1
  2. SELECT PACJENT.NAZWISKO, PACJENT.IMIE, COUNT(WIZYTA.ID_WIZYTA)
  3. FROM PACJENT,
  4.      WIZYTA
  5. WHERE PACJENT.ID_PACJENT = WIZYTA.ID_PACJENT
  6. GROUP BY WIZYTA.ID_WIZYTA, PACJENT.NAZWISKO, PACJENT.IMIE
  7. HAVING COUNT(WIZYTA.ID_WIZYTA) > (SELECT COUNT(WIZYTA.ID_LEKARZ)
  8.                                   FROM WIZYTA,
  9.                                        LEKARZ,
  10.                                        SPECJALNOSC
  11.                                   WHERE WIZYTA.ID_LEKARZ = LEKARZ.ID_LEKARZ
  12.                                     AND LEKARZ.NAZWISKO = 'Nowak'
  13.                                     AND WIZYTA.DATA > TO_DATE('01/01/2016', 'DD/MM/YY')
  14.                                     AND LEKARZ.ID_SPEC = SPECJALNOSC.ID_SPEC
  15.                                     AND SPECJALNOSC.NAZWA = 'LARYNGOLOG');
  16.  
  17. -- 2
  18. SELECT SPECJALNOSC.NAZWA, PACJENT.NAZWISKO, PACJENT.IMIE
  19. FROM SPECJALNOSC,
  20.      LEKARZ,
  21.      PACJENT,
  22.      WIZYTA
  23. WHERE WIZYTA.ID_PACJENT = PACJENT.ID_PACJENT
  24.   AND WIZYTA.ID_LEKARZ = LEKARZ.ID_LEKARZ
  25.   AND LEKARZ.ID_SPEC = SPECJALNOSC.ID_SPEC
  26.   AND WIZYTA.DATA < (SELECT MIN(WIZYTA.DATA)
  27.                      FROM PACJENT,
  28.                           WIZYTA,
  29.                           LEKARZ,
  30.                           SPECJALNOSC
  31.                      WHERE WIZYTA.ID_PACJENT = PACJENT.ID_PACJENT
  32.                        AND WIZYTA.ID_LEKARZ = LEKARZ.ID_LEKARZ
  33.                        AND LEKARZ.ID_SPEC = SPECJALNOSC.ID_SPEC
  34.                        AND SPECJALNOSC.NAZWA = 'KARDIOLOG');
  35.  
  36. -- 3
  37. SELECT PACJENT.IMIE, PACJENT.NAZWISKO, LEKARZ.IMIE, LEKARZ.NAZWISKO, WIZYTA.DATA
  38. FROM PACJENT,
  39.      LEKARZ,
  40.      WIZYTA
  41. WHERE PACJENT.ID_PACJENT = WIZYTA.ID_PACJENT
  42.   AND LEKARZ.ID_LEKARZ = WIZYTA.ID_LEKARZ
  43.   AND WIZYTA.DATA < (SELECT WIZYTA.DATA
  44.                      FROM WIZYTA,
  45.                           PACJENT
  46.                      WHERE WIZYTA.ID_PACJENT = PACJENT.ID_PACJENT
  47.                        AND PACJENT.NAZWISKO = 'Kowalski'
  48.                        AND PACJENT.IMIE = 'Jan'
  49.                        AND WIZYTA.DATA > ADD_MONTHS(SYSDATE, -12)
  50.                      ORDER BY WIZYTA.DATA DESC FETCH FIRST ROW ONLY)
  51.   AND WIZYTA.DATA > (SELECT WIZYTA.DATA
  52.                      FROM WIZYTA,
  53.                           PACJENT
  54.                      WHERE WIZYTA.ID_PACJENT = PACJENT.ID_PACJENT
  55.                        AND PACJENT.NAZWISKO = 'Kowalski'
  56.                        AND PACJENT.IMIE = 'Jan'
  57.                        AND WIZYTA.DATA > ADD_MONTHS(SYSDATE, -12)
  58.                      ORDER BY WIZYTA.DATA ASC FETCH FIRST ROW ONLY);
  59.  
  60. -- 4
  61. SELECT PACJENT.NAZWISKO, PACJENT.IMIE, AVG(WIZYTA.CENA)
  62. FROM PACJENT,
  63.      WIZYTA
  64. WHERE WIZYTA.ID_PACJENT = PACJENT.ID_PACJENT
  65. GROUP BY WIZYTA.ID_PACJENT, PACJENT.NAZWISKO, PACJENT.IMIE
  66. HAVING AVG(WIZYTA.CENA) > SUM((SELECT AVG(WIZYTA.CENA)
  67.                                FROM WIZYTA,
  68.                                     LEKARZ,
  69.                                     SPECJALNOSC
  70.                                WHERE WIZYTA.ID_LEKARZ = LEKARZ.ID_LEKARZ
  71.                                  AND LEKARZ.ID_SPEC = SPECJALNOSC.ID_SPEC
  72.                                  AND SPECJALNOSC.NAZWA = 'OKULISTA'
  73.                                GROUP BY LEKARZ.ID_SPEC));
  74.  
  75. -- 5
  76. ALTER TABLE PACJENT
  77.     ADD PESEL NUMBER(11) DEFAULT 1 NOT NULL;
  78.  
  79. -- 6
  80. ALTER TABLE PACJENT
  81.     DROP COLUMN DATA_UR;
  82.  
  83. -- 7
  84. ALTER TABLE PACJENT
  85.     MODIFY IMIE VARCHAR(25);
  86.  
  87. -- 8
  88. ALTER TABLE WIZYTA
  89.     ADD CHECK (CENA > 0 AND CENA < 100);
  90.  
  91. -- 9
  92. UPDATE WIZYTA
  93. SET CENA = CENA * 0.95
  94. WHERE WIZYTA.CENA > (SELECT AVG(WIZYTA.CENA) FROM WIZYTA WHERE WIZYTA.DATA > ADD_MONTHS(SYSDATE, -12));
  95.  
  96. -- 10
  97. UPDATE WIZYTA
  98. SET CENA = CENA + 50
  99. WHERE WIZYTA.ID_PACJENT IN (SELECT PACJENT.ID_PACJENT
  100.                             FROM PACJENT,
  101.                                  WIZYTA,
  102.                                  LEKARZ,
  103.                                  SPECJALNOSC
  104.                             WHERE WIZYTA.ID_PACJENT = PACJENT.ID_PACJENT
  105.                               AND WIZYTA.ID_LEKARZ = LEKARZ.ID_LEKARZ
  106.                               AND LEKARZ.ID_SPEC = SPECJALNOSC.ID_SPEC
  107.                               AND SPECJALNOSC.NAZWA = 'KARDIOLOG');
  108.  
  109. -- 11
  110. UPDATE LEKARZ
  111. SET LEKARZ.ID_SPEC = (SELECT SPECJALNOSC.ID_SPEC FROM SPECJALNOSC WHERE SPECJALNOSC.NAZWA = 'SUPER LEKARZ')
  112. WHERE LEKARZ.ID_LEKARZ IN (SELECT LEKARZ.ID_LEKARZ, COUNT(WIZYTA.ID_LEKARZ)
  113.                            FROM LEKARZ,
  114.                                 WIZYTA
  115.                            WHERE WIZYTA.ID_LEKARZ = LEKARZ.ID_LEKARZ
  116.                            GROUP BY WIZYTA.ID_LEKARZ
  117.                            HAVING COUNT(WIZYTA.ID_LEKARZ)
  118.                                       > (SELECT COUNT(WIZYTA.ID_LEKARZ)
  119.                                          FROM WIZYTA
  120.                                          WHERE WIZYTA.DATA
  121.                                                    > ADD_MONTHS(SYSDATE
  122.                                                    , -12)));
  123.  
  124. -- 12
  125. -
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement