Schema relazionale
- IMPIEGATI(IDimpiegato, cognome, nome, stipendio, superioreID)
IMPIEGATI.superioreID è chiave esterna collegata a IMPIEGATI.IDimpiegato
Query
- Stipendio più basso, medio, più alto e numero di stipendiati
SELECT Min(stipendio) AS [stipendio minimo], Avg(stipendio) AS [stipendio medio], Max(stipendio) AS [stipendio massimo], Count(stipendio) AS [numero stipendiati] FROM IMPIEGATI
- I dati degli impiegati con il cognome del loro superiore
SELECT I1.cognome, I1.nome, I2.cognome AS [superiore] FROM IMPIEGATI AS I1, IMPIEGATI AS I2 WHERE I1.superioreID = I2.IDimpiegato
- con INNER JOIN…
SELECT I1.cognome, I1.nome, I2.cognome AS [superiore] FROM IMPIEGATI AS I1 INNER JOIN IMPIEGATI AS I2 ON I1.superioreID = I2.IDimpiegato
- I dati degli impiegati con lo stipendio più alto del loro superiore
SELECT I1.cognome, I1.nome, I1.stipendio, I2.cognome AS [superiore], I2.stipendio FROM IMPIEGATI AS I1 INNER JOIN IMPIEGATI AS I2 ON I1.superioreID = I2.IDimpiegato WHERE I1.stipendio > I2.stipendio
- … quanti sono
SELECT Count(*) AS [Quanti ...] FROM IMPIEGATI AS I1 INNER JOIN IMPIEGATI AS I2 WHERE I1.stipendio > I2.stipendio
- Il valore minimo e massimo degli stipendi delle coppie impiegato-superiore
SELECT Min(I1.stipendio+I2.stipendio) AS [coppia povera], Max(I1.stipendio+I2.stipendio) AS [coppia ricca] FROM IMPIEGATI AS I1 INNER JOIN IMPIEGATI AS I2 ON I1.superioreID = I2.IDimpiegato
- La differenza più alta tra lo stipendio di un superiore e di un impiegato
SELECT Max(I2.stipendio-I1.stipendio) AS [differenza massima] FROM IMPIEGATI AS I1 INNER JOIN IMPIEGATI AS I2 ON I1.superioreID = I2.IDimpiegato
- Il totale degli stipendi dei superiori
SELECT Sum(I2.stipendio) AS [totale stipendi dei superiori] FROM IMPIEGATI AS I1 INNER JOIN IMPIEGATI AS I2 ON (I1.superioreID=I2.IDimpiegato)
- Il totale degli stipendi dei dipendenti per ogni superiore
SELECT I2.Cognome, Sum(I1.stipendio) AS [stipendi dei dipendenti] FROM IMPIEGATI AS I1 INNER JOIN IMPIEGATI AS I2 ON I1.superioreID = I2.IDimpiegato GROUP BY I2.Cognome
- Il totale degli stipendi dei dipendenti per ogni superiore (se è almeno 100000)
SELECT I2.Cognome, Sum(I1.stipendio) AS [stipendi dei dipendenti] FROM IMPIEGATI AS I1 INNER JOIN IMPIEGATI AS I2 ON I1.superioreID = I2.IDimpiegato GROUP BY I2.Cognome HAVING Sum(I1.stipendio) >= 100000