Cognome e Nome dei dipendenti di una determinata azienda che svolgono una professione prefissata. SELECT Cognome, Nome
FROM Dipendente INNER JOIN Azienda ON Dipendente.CodiceAzienda= Azienda.CodiceAzienda
WHERE Azienda.CodiceAzienda = 2 AND Dipendente.Professione='Operaio';
Lista delle differenti professioni presenti in un’azienda di cui si conosce il codice. SELECT DISTINCT Professione
FROM Dipendente INNER JOIN Azienda ON Dipendente.CodiceAzienda=Azienda.CodiceAzienda
WHERE Azienda.CodiceAzienda= 2;
Lista delle professioni, con eliminazione dei duplicati, per le quali i redditi sono superiori a una cifra prefissata. SELECT DISTINCT Professione
FROM Dipendente
WHERE Reddito > 3000;
Elenco dei versamenti con data e importo effettuati dai dipendenti di una determinata azienda. SELECT DataVersamento, Importo
FROM Versamento INNER JOIN Dipendente ON Versamento.codiceDipendente= Dipendente.CodiceDipendente
WHERE CodiceAzienda = 2;
Numero dei dipendenti che lavorano in un’azienda di cui si conosce la denominazione. SELECT Count(*) AS NumDipendenti
FROM Dipendente INNER JOIN Azienda ON Dipendente.CodiceAzienda= Azienda.CodiceAzienda
WHERE Denominazione = [quale azienda?];
Valore minimo e massimo tra i redditi di tutti i dipendenti. SELECT MIN(reddito) AS Minimo, MAX(reddito) as Massimo
FROM Dipendente;
Somma dei versamenti di imposta effettuati dai dipendenti di un’azienda di cui si conosce il codice. SELECT SUM(Importo) AS TotaleXAzienda
FROM Versamento INNER JOIN Dipendente ON Dipendente.CodiceDipendente=Versamento.CodiceDipendente
WHERE Dipendente.CodiceAzienda = 2;
Elenco alfabetico dei dipendenti di un’azienda, con cognome, nome e reddito al netto delle trattenute. SELECT Cognome, Nome, (Reddito - Trattenute) AS RedditoNetto
FROM Dipendente
ORDER BY Cognome, Nome;
Elenco dei dipendenti di un’azienda prefissata con cognome, nome, reddito lordo, somma deiversamenti di imposta. SELECT Cognome, Nome, Reddito, SUM(Importo) AS TotVersamenti
FROM Dipendente INNER JOIN Versamento ON Dipendente.CodiceDipendente= Versamento.CodiceDipendente
WHERE Dipendente.CodiceAzienda = [CodiceAzienda?]
GROUP BY Cognome, Nome, Reddito;
Per ciascuna azienda: denominazione, numero dei dipendenti, totale dei redditi. SELECT Denominazione, Count(*) AS NumeroDipendenti, SUM(Reddito) AS TotRedditi
FROM Azienda INNER JOIN Dipendente ON Azienda.CodiceAzienda=Dipendente.CodiceAzienda
GROUP BY Denominazione;
Numero dei dipendenti e reddito medio per i dipendenti con una professione prefissata raggruppati per azienda. SELECT Denominazione, Count(*) AS NrDipendenti, AVG(Reddito) AS RedditoMedio
FROM Dipendente INNER JOIN Azienda ON Dipendente.CodiceAzienda = Azienda.CodiceAzienda
WHERE Professione = [Quale Professione?]
GROUP BY Denominazione;
Numero e valore medio dei versamenti di imposta raggruppati per azienda. SELECT Denominazione, Count(*) AS NrVersamenti, AVG(Importo) AS MediaVersamenti
FROM (Dipendente INNER JOIN Versamento ON Dipendente.CodiceDipendente=Versamento.CodiceDipendente) INNER JOIN Azienda ON Azienda.CodiceAzienda=Dipendente.CodiceAzienda
GROUP BY Denominazione;
Cognome e nome dei dipendenti che lavorano presso una tra tre aziende prefissate delle quali si conoscono i codici. SELECT Cognome, Nome
FROM Dipendente
WHERE CodiceAzienda in (1,2,3);
Cognome e nome dei dipendenti che non sono né impiegati né dirigenti. SELECT Cognome, Nome, Professione
FROM Dipendente
WHERE Professione NOT IN ('Impiegato','Dirigente');
Cognome e professione dei dipendenti che hanno il cognome con iniziale dalla lettera A alla lettera M. SELECT Cognome, Professione
FROM Dipendente
WHERE Cognome LIKE "[A-M]*";
Cognome, nome e professione dei dipendenti che hanno il reddito compreso tra due cifre prefissate. SELECT Cognome, Nome, Professione
FROM Dipendente
WHERE Reddito BETWEEN [inizio] AND [fine];
Numero dei dipendenti raggruppati per professione riferiti alle aziende che operano in uno tra cinque settori di attività prefissati. ELECT Professione, Count(*) AS ContaAddetti
FROM Dipendente INNER JOIN Azienda ON Dipendente.CodiceAzienda=Azienda.CodiceAzienda
WHERE Settore = [quale settore]
GROUP BY Professione;
Lista delle aziende, con denominazione e valore medio dei versamenti di imposta, per le quali il valore medio è superiore a un valore prefissato. SELECT Denominazione, AVG(Importo) AS Media
FROM (Azienda INNER JOIN Dipendente ON Azienda.CodiceAzienda=Dipendente.CodiceAzienda) INNER JOIN Versamento ON Dipendente.CodiceDipendente=Versamento.CodiceDipendente
GROUP BY Denominazione
HAVING AVG(Importo) > [limite];
Lista delle aziende, con denominazione e numero dei dipendenti che svolgono una professione prefissata, per le quali il numero dei dipendenti è superiore a 1. SELECT Denominazione, Count(*) AS Totale
FROM Dipendente INNER JOIN Azienda ON Dipendente.CodiceAzienda=Azienda.CodiceAzienda
WHERE Professione = [quale professione]
GROUP BY Denominazione
HAVING Count(*)>1;
Elenco delle professioni dei dipendenti per i quali il valore medio dei redditi è superiore a un valore prefissato. SELECT Professione, AVG(Reddito) AS Media
FROM Dipendente
GROUP BY Professione
HAVING AVG(Reddito) > [reddito medio];
Cognome, nome e professione dei dipendenti per i quali il reddito è uguale al valore massimo tra tutti i dipendenti. SELECT Cognome, Nome, Professione
FROM Dipendente
WHERE Reddito = (Select MAX(Reddito) FROM Dipendente);
Codice dell’azienda, cognome e nome dei dipendenti che hanno il reddito uguale al valore minimo tra i dipendenti aventi una determinata professione. SELECT CodiceAzienda, Cognome, Nome
FROM Dipendente
WHERE Reddito = (SELECT MIN(Reddito) FROM Dipendente WHERE Professione = [quale professione?]);
Lista delle aziende, con denominazione e valore medio dei redditi nell’azienda, per le quali il valore medio è inferiore al valore medio dei dipendenti di tutte le aziende. SELECT Azienda.Denominazione, AVG(Reddito) AS MediaReddito
FROM Azienda INNER JOIN Dipendente ON Azienda.CodiceAzienda=Dipendente.CodiceAzienda
GROUP BY Denominazione
HAVING AVG(Reddito) < (SELECT AVG(Reddito) FROM Dipendente);
Codice e denominazione dell’azienda o delle aziende con il minor numero di dipendenti. SELECT Azienda.CodiceAzienda, Denominazione
FROM Azienda INNER JOIN Dipendente ON Azienda.CodiceAzienda=Dipendente.CodiceAzienda
GROUP BY Azienda.CodiceAzienda, Denominazione
HAVING Count(*) = (SELECT MIN(TOT) FROM (SELECT Count(*) AS TOT FROM Azienda INNER JOIN Dipendente ON Azienda.CodiceAzienda=Dipendente.CodiceAzienda GROUP BY Denominazione))
SELECT Azienda.CodiceAzienda, Denominazione
FROM Azienda INNER JOIN Dipendente ON Azienda.CodiceAzienda=Dipendente.CodiceAzienda
GROUP BY Azienda.CodiceAzienda, Denominazione
HAVING Count(*) <= ALL(SELECT Count(*) FROM Azienda INNER JOIN Dipendente ON Azienda.CodiceAzienda=Dipendente.CodiceAzienda GROUP BY Denominazione);