Órai SQL

Márciusi vizsgálatokban résztvevő orvosok

SELECT nev as Név
FROM orvosok
WHERE id in(
    SELECT orvos_id 
    FROM vizsgalatok
    WHERE datum BETWEEN "2025.03.01" and "2025.03.31"
);
SELECT DISTINCT o.nev as Név
FROM orvosok o
JOIN vizsgalatok v ON o.id = v.orvos_id
WHERE YEAR(v.datum) = 2025 AND MONTH(v.datum) = 3;

Orvosok, akik még nem végeztek vizsgálatot

SELECT nev as név
FROM orvosok
WHERE id NOT IN (
  SELECT DISTINCT orvos_id FROM vizsgalatok
);
SELECT o.nev as név
FROM vizsgalatok v 
RIGHT JOIN orvosok o ON o.id = v.orvos_id
WHERE v.id IS NULL;

Orvosok és vizsgálataik száma

SELECT o.nev as név, COUNT(v.id) as "Vizsgálatok száma"
FROM vizsgalatok v 
RIGHT JOIN orvosok o ON o.id = v.orvos_id
GROUP BY o.nev;

Legalább 2 vizsgálatot végző orvosok

SELECT o.nev as név, COUNT(v.id) as "Vizsgálatok száma"
FROM vizsgalatok v 
RIGHT JOIN orvosok o ON o.id = v.orvos_id
GROUP BY o.nev
HAVING COUNT(v.id) >= 2;

Vizsgálaton járt betegek az elmúlt 1 hónapban

SELECT beteg_nev as Név, datum as Dátum, diagnozis as Diagnózis
FROM vizsgalatok
WHERE datum >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH);
SELECT beteg_nev, datum, diagnozis, DATEDIFF(CURRENT_DATE(), datum)
FROM vizsgalatok
WHERE DATEDIFF(CURRENT_DATE(), datum) < 32;