Pazienti e visite

Il problema

Schema relazionale

  • PAZIENTE(IDpaziente, Cognome, Nome, DataNascita, Provincia, CodASL)
  • VISITA(IDvisita, DataVisita, Peso, Altezza, PressioneMin, PressioneMax, pazienteID)

VISITA.pazienteID è chiave esterna collegata a PAZIENTE.IDpaziente

Query

  1. Pazienti di Milano
    SELECT Cognome, Nome, CodASL
    FROM   PAZIENTE
    WHERE  Provincia LIKE "MI"
  2. Pazienti di Milano con almeno una visita
    SELECT Cognome, Nome, CodASL
    FROM   PAZIENTE, VISITA
    WHERE  (PAZIENTE.IDPaziente = VISITA.pazienteID) AND (Provincia LIKE "MI")
  3. con DISTINCT
    SELECT DISTINCT Cognome, Nome, CodASL
    FROM   PAZIENTE, VISITA
    WHERE  (PAZIENTE.IDPaziente = VISITA.pazienteID) AND (Provincia LIKE "MI")
  4. oppure, con INNER JOIN
    SELECT DISTINCT Cognome, Nome, CodASL
    FROM   PAZIENTE INNER JOIN VISITA ON (PAZIENTE.IDPaziente = VISITA.pazienteID)
    WHERE  Provincia LIKE "MI"
  5. Le visite dei pazienti di Como e Bergamo, a partire dalle più recenti
    SELECT   DataVisita, Cognome, Nome, Peso, Altezza, PressioneMin, PressioneMax
    FROM     PAZIENTE INNER JOIN VISITA ON (PAZIENTE.IDPaziente = VISITA.pazienteID)
    WHERE    (Provincia LIKE "CO") OR (Provincia LIKE "BG")
    ORDER BY DataVisita DESC
  6. oppure, con IN
    SELECT   DataVisita, Cognome, Nome, Peso, Altezza, PressioneMin, PressioneMax
    FROM     PAZIENTE INNER JOIN VISITA ON (PAZIENTE.IDPaziente = VISITA.pazienteID)
    WHERE    Provincia IN ("CO", "BG")
    ORDER BY DataVisita DESC
  7. Cognome, nome e peso dei pazienti nati prima del 1980, ordinati per data
    SELECT   Cognome, Nome, DataVisita, Peso
    FROM     PAZIENTE INNER JOIN VISITA ON (PAZIENTE.IDPaziente = VISITA.pazienteID)
    WHERE    DataNascita < #1/1/1980#
    ORDER BY Cognome, Nome, DataVisita DESC