Un concessionario di motociclette di diverse marche intende migliorare la propria organizzazione commerciale automatizzando il sistema delle vendite. In particolare la ditta intende realizzare un database capace di gestire tutte le informazioni relative al modelli disponibili, alla propria clientela e alle vendite effettuate. Il Database Creato è il seguente: CREATE TABLE marche ( mr_codice mr_desc mr_ind mr_citta mr_stato ); CHAR(3) NOT NULL VARCHAR(30), VARCHAR(30), VARCHAR(20), VARCHAR(20) CREATE TABLE clienti ( cl_codice cl_cognome cl_nome cl_ind cl_citta ); NUMERIC(6) VARCHAR(30), VARCHAR(30), VARCHAR(30), VARCHAR(20) CREATE TABLE veicoli ( vl_codice vl_marca vl_modello vl_n_cilindri vl_cilindrata vl_potenza vl_prezzo vl_foto ); PRIMARY KEY, NOT NULL PRIMARY KEY, CHAR(6) NOT NULL PRIMARY KEY, CHAR(3) REFERENCES marche(mr_codice), VARCHAR(30), NUMERIC(2), NUMERIC(6), NUMERIC(4), NUMERIC(12,2), VARCHAR(120) CREATE TABLE vendite ( vn_anno NUMERIC(4) vn_prog NUMERIC(6) vn_cliente NUMERIC(6) vn_data DATETIME, vn_veicolo CHAR(6) PRIMARY KEY (vn_anno,vn_prog) ); NOT NULL, NOT NULL, REFERENCES clienti(cl_codice), REFERENCES veicoli(vl_codice), Scrivere in SQL la soluzione dei seguenti problemi: 1. Elenco di tutte le vendite effettuate indicando anche il nome del cliente ed il nome e la marca del veicolo venduto. Statistica delle vendite per veicolo: per ogni tipo di veicolo occorre indicare la quantità venduta e l'importo totale ricavato. La statistica deve fare riferimento ad un determinato anno. Statistica delle vendite per marca: per ogni marca occorre indicare il numero complessivo di veicoli venduti ed il valore totale. Anche in questo caso la statistica deve fare riferimento ad un determinato anno. Statistica delle vendite per cliente e marca: per ogni cliente occorre indicare le marche acquistate con il numero ed il valore dei veicoli. Questa statistica si riferisce a tutti gli anni presenti nel data base e serve ad individuare le preferenze dei clienti. Elenco dei clienti che hanno acquistato più di due veicoli. Per un determinato anno indicare i modelli a catalogo che non sono stati venduti. 2. 3. 4. 5. 6. Il DataBase può essere popolato utilizzando i seguenti script: INSERT INTO marche VALUES('APR','APRILIA','Via Roma, 10', 'Bologna','Italia' ); INSERT INTO marche VALUES('GLR','GILERA', 'Via Garibaldi, 3','Milano', 'Italia' ); INSERT INTO marche VALUES('BMW','B M W', '5, Maas Strass', 'Monaco', 'Germania'); INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO clienti clienti clienti clienti clienti clienti clienti clienti clienti clienti VALUES( 1,'GROLLI', 'Mirco', 'Via VALUES( 2,'ALARIA', 'Luca', 'Via VALUES( 3,'CARNEVALI','Giovanni','Via VALUES( 4,'BONARDI', 'Stefano', 'Via VALUES( 5,'GANGALE', 'Marco', 'Via VALUES( 6,'DI FAZIO', 'Luca', 'Via VALUES( 7,'BICCHIERI','Stefano', 'Via VALUES( 8,'GIORDANI', 'Giorgio', 'Via VALUES( 9,'GUERCETTI','Mario', 'Via VALUES(10,'VIOLI', 'Sergio', 'Via INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO veicoli veicoli veicoli veicoli veicoli veicoli veicoli veicoli veicoli veicoli VALUES('XP050', 'APR','XP VALUES('XP125', 'APR','XP VALUES('XP250', 'APR','XP VALUES('FZ080', 'GLR','FZ VALUES('FZ150', 'GLR','FZ VALUES('FZ350', 'GLR','FZ VALUES('PX600', 'BMW','PX VALUES('PX700', 'BMW','PX VALUES('PX800', 'BMW','PX VALUES('PX1100','BMW','PX INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO vendite vendite vendite vendite vendite vendite vendite vendite vendite vendite vendite VALUES( VALUES( VALUES( VALUES( VALUES( VALUES( VALUES( VALUES( VALUES( VALUES( VALUES( 2002, 1, 3, 2002, 2, 4, 2002, 3, 1, 2002, 4, 2, 2002, 5, 1, 2002, 6, 5, 2002, 7, 6, 2002, 8, 1, 2002, 9, 3, 2002, 10, 4, 2002, 11, 5, 50', 125', 250', 80', 150', 350', 600', 700', 800', 1100', Po, 23', 'Parma' ); Roma, 43', 'Parma' ); Parigi, 7', 'Reggio Emilia'); Cavour, 12','Montecchio' ); Ariosto, 5','Sala Baganza' ); Benni, 45', 'Parma' ); Mori, 23', 'Fidenza' ); Artoni, 66','Felino' ); Marchi, 44','Parma' ); Lima, 87', 'Parma' ); 1, 50, 1, 125, 2, 250, 1, 80, 1, 150, 2, 350, 1, 600, 2, 700, 2, 800, 4, 1100, '04-01-2002', '06-01-2002', '07-01-2002', '09-01-2002', '10-01-2002', '14-01-2002', '15-01-2002', '16-01-2002', '21-01-2002', '22-01-2002', '23-01-2002', 12, 2400.00,''); 21, 3800.00,''); 32, 4560.00,''); 18, 2800.00,''); 23, 4230.00,''); 41, 5200.00,''); 51, 6400.00,''); 56, 6800.00,''); 62, 8400.00,''); 83, 12400.00,''); 'XP050'); 'PX1100'); 'FZ350'); 'XP125'); 'XP050'); 'FZ080'); 'PX800'); 'PX600'); 'XP125'); 'XP250'); 'FZ150');