USE magazzino2; # Conta quanti fornitori ci sono SELECT COUNT(*)AS Numero_Fornitori FROM Fornitori; # Conta quanti fornitori forniscono bulloni SELECT COUNT(*) AS Numero_Fornitori_Bulloni FROM Magazzino INNER JOIN (Fornitori INNER JOIN Acquisti ON Fornitori.Id_fornitore = Acquisti.Id_fornitore) ON Magazzino.Id_Articolo = Acquisti.Id_Articolo WHERE Magazzino.Descrizione = 'Bulloni'; # Calcola gli acquisti (come numero di pezzi) totali di bulloni SELECT SUM(NPezzi) FROM Magazzino INNER JOIN (Fornitori INNER JOIN Acquisti ON Fornitori.Id_fornitore = Acquisti.Id_fornitore) ON Magazzino.Id_Articolo = Acquisti.Id_Articolo WHERE Magazzino.Descrizione = 'Bulloni'; # Calcola le vendite (come numero di pezzi) totali di bulloni SELECT SUM(NPezzi) FROM Magazzino INNER JOIN (Clienti INNER JOIN Vendite ON Clienti.Id_cliente = Vendite.Id_cliente) ON Magazzino.Id_Articolo = Vendite.Id_Articolo WHERE Magazzino.Descrizione = 'Bulloni'; # calcola i pezzi disponibili a magazzino SELECT ((SELECT SUM(NPezzi) FROM Magazzino INNER JOIN (Fornitori INNER JOIN Acquisti ON Fornitori.Id_fornitore = Acquisti.Id_fornitore) ON Magazzino.Id_Articolo = Acquisti.Id_Articolo WHERE Magazzino.Descrizione = 'Bulloni') - (SELECT SUM(NPezzi) FROM Magazzino INNER JOIN (Clienti INNER JOIN Vendite ON Clienti.Id_cliente = Vendite.Id_cliente) ON Magazzino.Id_Articolo = Vendite.Id_Articolo WHERE Magazzino.Descrizione = 'Bulloni')) AS Bulloni_Rimasti; # Numero di operazioni di acquisto precedenti alla data del primo gennaio 2007 (1/1/2007) SELECT COUNT(*) FROM (Fornitori INNER JOIN Acquisti ON Fornitori.Id_fornitore = Acquisti.Id_fornitore) WHERE DataAcquisto < '2007-01-01' # Numero medio di pezzi acquistati SELECT SUM(NPezzi) / COUNT(*) FROM Acquisti; # La stessa query usando la funzione AVG SELECT AVG(NPezzi) FROM Acquisti; # Numero di vendite raggruppati per clienti SELECT Nome_Cli, Cognome_Cli, COUNT(*) AS Numero_Acquisti FROM (Clienti INNER JOIN Vendite ON Clienti.Id_cliente = Vendite.Id_cliente) GROUP BY Clienti.Id_Cliente