# Connection: root@localhost:3306 # Host: localhost # Saved: 2008-05-08 23:03:16 # # a) Elenco delle attivitą svolte per i docenti di matematica (con giorno, numero fotocopie e prezzo) SELECT Numero_Fotocopie, Data_Lavoro, Prezzo FROM (utenti INNER JOIN attivita ON utenti.Codice_Utente = attivita.Codice_Utente) WHERE utenti.Tipo = 'D' AND Riferimento = 'MAT' # b) Nome degli operatori che hanno svolto attivitą di fotocopie usando la macchina con codice ABC SELECT DISTINCT Nome, Cognome FROM (operatori INNER JOIN attivita ON operatori.Codice_Operatore = attivita.Codice_Operatore) INNER JOIN macchine ON attivita.Codice_Macchina = attivita.Codice_macchina WHERE macchine.Codice_Macchina = 'ABC' # c) Elenco delle classi che hanno richiesto fotocopie in numero superiore a 100 SELECT Descrizione, Riferimento FROM utenti INNER JOIN attivita ON utenti.Codice_Utente = attivita.Codice_Utente WHERE utenti.Tipo = 'C' GROUP BY utenti.Codice_Utente HAVING SUM(Numero_Fotocopie) > 100 # c bis) Elenco delle classi che hanno richiesto fotocopie in numero superiore a 100 SELECT DISTINCT Descrizione, Riferimento FROM utenti INNER JOIN attivita ON utenti.Codice_Utente = attivita.Codice_Utente WHERE utenti.Tipo = 'C' AND Numero_Fotocopie > 100 # d) Elenco dei docenti con la descrizione e la materia SELECT Descrizione, Riferimento FROM utenti WHERE Tipo = 'D' # e) Descrizione degli studenti che hanno fatto fotocopie con valore superiore a una cifra prefissata con l?operatore avente codice XYZ SELECT Descrizione , SUM(Numero_Fotocopie) FROM (utenti INNER JOIN attivita ON utenti.Codice_Utente = attivita.Codice_Utente) INNER JOIN operatori ON operatori.Codice_Operatore = attivita.Codice_Operatore WHERE utenti.Tipo = 'S' AND operatori.Codice_Operatore = 'XYZ' GROUP BY utenti.Codice_Utente HAVING SUM(Numero_Fotocopie) > 100 # e - bis) Descrizione degli studenti che hanno fatto fotocopie con valore superiore a una cifra prefissata con l?operatore avente codice XYZ SELECT Descrizione , SUM(Numero_Fotocopie) FROM (utenti INNER JOIN attivita ON utenti.Codice_Utente = attivita.Codice_Utente) INNER JOIN operatori ON operatori.Codice_Operatore = attivita.Codice_Operatore WHERE utenti.Tipo = 'S' AND operatori.Codice_Operatore = 'XYZ' #GROUP BY utenti.Codice_Utente HAVING SUM(Numero_Fotocopie) > 100