Il 0% ha trovato utile questo documento (0 voti)
9 visualizzazioni2 pagine

Dipartimenti Progetti - DQL.SQL

bau

Caricato da

Stefi Beznea
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
9 visualizzazioni2 pagine

Dipartimenti Progetti - DQL.SQL

bau

Caricato da

Stefi Beznea
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 2

-- 3. Trovare matricola e cognome degli impiegati che guadagnano più di 50.

SELECT Matricola, Cognome FROM impiegato WHERE Stipendio > 50;

-- 4. Trovare cognome e stipendio degli impiegati che lavorano a Milano.


SELECT Cognome, Stipendio FROM impiegato JOIN dipartimento ON
impiegato.Dipartimento = dipartimento.Codice WHERE Sede = 'Milano';

-- 5. Trovare il cognome degli impiegati e il nome del dipartimento in cui


lavorano.
SELECT impiegato.Cognome, dipartimento.Nome FROM impiegato JOIN dipartimento ON
impiegato.Dipartimento = dipartimento.Codice;

-- 6. Trovare il cognome degli impiegati che sono direttori di dipartimento.


SELECT Cognome FROM impiegato WHERE Matricola IN (SELECT Direttore FROM
dipartimento);

-- 7. Trovare i nomi dei progetti e i cognomi dei responsabili.


SELECT progetto.Nome, impiegato.Cognome
FROM progetto
JOIN impiegato ON progetto.Responsabile = impiegato.Matricola;

-- 8. Trovare i nomi dei progetti con bilancio maggiore di 100 e i cognomi degli
impiegati che lavorano su di essi.
SELECT progetto.Nome, impiegato.Cognome
FROM progetto
JOIN impiegato ON progetto.Responsabile = impiegato.Matricola
WHERE progetto.Bilancio > 100;

-- 9. Trovare cognome degli impiegati che guadagnano più del loro direttore di
dipartimento.
SELECT i.Cognome
FROM impiegato i
JOIN dipartimento d ON i.Dipartimento = d.Codice
WHERE i.Stipendio > (SELECT Stipendio FROM impiegato WHERE Matricola =
d.Direttore);

-- 10. Trovare cognome dei direttori di dipartimento e dei responsabili di


progetto.
SELECT d.Cognome AS Direttore, i.Cognome AS Responsabile
FROM dipartimento d
JOIN impiegato i ON d.Direttore = i.Matricola;

-- 11. Trovare i nomi dei dipartimenti in cui lavorano impiegati che guadagnano più
di 60.
SELECT d.Nome
FROM dipartimento d
JOIN impiegato i ON d.Codice = i.Dipartimento
WHERE i.Stipendio > 60;

-- 12. Trovare i nomi dei dipartimenti in cui tutti gli impiegati guadagnano più di
60.
SELECT d.Nome
FROM dipartimento d
WHERE NOT EXISTS (
SELECT *
FROM impiegato i
WHERE i.Dipartimento = d.Codice AND i.Stipendio <= 60
);
-- 13. Trovare il cognome degli impiegati di stipendio massimo.
SELECT Cognome
FROM impiegato
WHERE Stipendio = (SELECT MAX(Stipendio) FROM impiegato);

-- 14. Trovare matricola e cognome degli impiegati che non lavorano a nessun
progetto.
SELECT i.Matricola, i.Cognome
FROM impiegato i
LEFT JOIN partecipazione p ON i.Matricola = p.Impiegato
WHERE p.Impiegato IS NULL;

-- 15. Trovare matricola e cognome degli impiegati che lavorano a più di un


progetto.
SELECT i.Matricola, i.Cognome
FROM impiegato i
JOIN (
SELECT Impiegato
FROM partecipazione
GROUP BY Impiegato
HAVING COUNT(Progetto) > 1
) p ON i.Matricola = p.Impiegato;

-- 16. Trovare matricola e cognome degli impiegati che lavorano a un solo progetto.
SELECT i.Matricola, i.Cognome
FROM impiegato i
JOIN (
SELECT Impiegato
FROM partecipazione
GROUP BY Impiegato
HAVING COUNT(Progetto) = 1
) p ON i.Matricola = p.Impiegato;

-- 17. Trovare per ciascun dipartimento lo stipendio medio degli impiegati che vi
lavorano.
SELECT d.Nome AS Dipartimento, AVG(i.Stipendio) AS StipendioMedio
FROM dipartimento d
JOIN impiegato i ON d.Codice = i.Dipartimento
GROUP BY d.Nome;

-- 18. Trovare matricola e cognome degli impiegati che hanno lo stipendio superiore
almeno del 10% rispetto allo stipendio medio del loro dipartimento.
SELECT i.Matricola, i.Cognome
FROM impiegato i
JOIN dipartimento d ON i.Dipartimento = d.Codice
WHERE i.Stipendio > 1.1 * (SELECT AVG(Stipendio) FROM impiegato WHERE Dipartimento
= d.Codice);

-- 19. Trovare cognome degli impiegati che guadagnano meno del minimo che guadagna
un direttore di dipartimento.
SELECT i.Cognome
FROM impiegato i
JOIN dipartimento d ON i.Dipartimento = d.Codice
WHERE i.Stipendio < (SELECT MIN(Stipendio) FROM impiegato WHERE Dipartimento =
d.Codice AND Matricola = d.Direttore);

Potrebbero piacerti anche