Torna alla pagina di Basi di Dati
:: Basi di Dati: temi d'Esame
21 febbraio 2008
PAZIENTE (Codice Nome, Cittą, DataNascita)
ESAME(Codice, Nome, Tipo, Prezzo)
PRENOTAZIONE (CodPaziente, CodEsame DataPrenotazione)
Algebra
Determinare per ogni esame il codice dei pazienti che l'hanno prenotato da pił tempo
P:=ρC, E, D <- CodPaziente, CodEsame, DataPrenotazione(PRENOTAZIONE)
Y:=(πCodPaziente, CodEsame(PRENOTAZIONE |x| CodEsame=E ^ DataPrenotazione>DP)
RISULTATO:=πcODpAZIENTE, CodEsame)(PRENOTAZIONE) - πcODpAZIENTE, CodEsame(Y)
Determinare il nome dei pazienti ch enon hanno mai prenotato esamidi tipo ecografico ma che hanno prenotato un esame cardiocologico e un esame radiologico
ECO:=πCodPaziente(PRENOTAZIONE |X|CodEsame=CodiceσTipo='ecografico'(ESAME))
CARD:=πCodPaziente(PRENOTAZIONE |X|CodEsame=CodiceσTipo='cardiologico'(ESAME))
RADIO:=πCodPaziente(PRENOTAZIONE |X|CodEsame=CodiceσTipo='radiologico'(ESAME))
R:=(CARD∩RADIO) - ECO
RISULTATO:=πNome(R |X|CodPaziente=CodicePAZIENTE)
SQL
Determinare i tipi di esame che hanno prezzo medio (la media dei prezzi)pił elevato
SELECT Tipo
FROM ESAME
GROUP BY Tipo
HAVING AVG(Prezzo) >= (
SELECT AVG(Prezzo)
FROM ESAME
GROUP BY Tipo)
Determinare il nome ed il prezzo degli esami di tipo pediatrico che sono stati prenotati sol da pazienti nati dop il 2000
SELECT Nome, Prezzo
FROM Esame JOIN Prenotazione ON Codice=CodEsame
WHERE Tipo = 'Pediatrico'
ANDCodice NOT IN (
SELECT CodEsame
FROM Prenotazione JOIN Paziente On CodPaziente=Codice
WHERE DataNascita<01/01/2001)
ER