LEZIONI DI INFORMATICA
a cura del prof. Rocco Camera Scrivetemi
Introduzione || Tipi standard | Tabelle | Select | Aggregazioni | Clausole, ... | Esempi | Compito
ARGOMENTI DOCUMENTI Studenti al lavoro
SQL: Esame di stato 1999: Applicazione - codifica SQL

Dettaglio di una funzione e codifica in SQL
Viene affrontata la parte relativa alla determinazione dei compensi: la prima fase determina i costi sostenuti per le prestazioni fornite al paziente, la seconda fase la determinazione dei costi totali per assistito. nella terza fase viene prodotta una tabella che riporta per ogni codice assistito il costo sostenuto, la regione dove è ubicato l'ospedale e la regione di residenza dell'assistito.

Per completare la determinazione dei compensi occorrerebbe selezionare dalla tabella precedente le righe dove le due regioni coincidono e, in modo separato, le righe con le due regioni diverse.

Creare la vista con i costi delle prestazioni:

CREATE VIEW CostiPrestaz
AS SELECT
Assistiti.Codice AS CodAssist,
SUM (Tariffe.Costo) AS CostiPrestazioni
FROM Tariffe, Prestazioni, SDO, Assistiti
WHERE Tariffe.Codice = Prestazioni.CodTariffa
AND SDO.Codice = Prestazioni.CodSDO
AND Assistiti.Codice = SDO.CodAssistito
GROUP BY Assistiti.Codice;

Creare la vista con l'indicazione dei costi totali per ciascun assistito

CREATE VIEW CostiAssistiti
AS SELECT
Assistiti.Codice,
CostoRicovero*(DataFine-DataInizio)+CostiPrestazioni
AS CostoTotale,
Assistiti.CodLocalita AS LocalitaAssist,
Ospedali.CodLocalita AS LocalitaOsped
FROM CostiPrestaz, Assistiti, SDO, Ospedali
WHERE CostiPrestaz.CodAssist=Assistiti.Codice
AND Assistiti.Codice=SDO.CodAssistito
AND Ospedali.Codice=SDO.CodOspedale;

Calcolare i compensi SELECT
CostiAssistiti.Codice,
CostiAssistiti-CostoTotale,
Regioni.Nome AS RegioneAssistito,
Regioni_l.Nome AS RegioneOspedale
FROM CostiAssistiti, Località, Regioni,
Località AS Località_1, Regioni AS Regioni_1
WHERE CostiAssistiti.LocalitàAssist = Località.codice
AND Regioni.Codice = Località.codRegione
AND CostiAssistiti.Localitaosped, Localita_1.Codice
AND Localita_l.CodRegione = Regioni_l.Codice;