Un concessionario di motociclette di diverse marche

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');