COGNOME e Nome___________________________ LOGIN ___________________________________________
Basi di Dati
Prova di SQl appello 24-01-2013
Viene valutato quanto memorizzato su file (denominare il file COGNOME.sql)
Facendo riferimento allo schema del database PROVA, scrivere la query SQL corrispondenti alle seguenti
interrogazioni:
1) Elencare TUTTI i fornitori e anche il numero di distinto di prodotti che compaiono nelle forniture, per quelli che
hanno forniture (per gli altri, 0).
select f.*,count(distinct prcod) as numero
from fornitori f left join forniture ft on f.cod=ft.fcod
group by f.cod,f.nome,f.citta
Result set:
COD
F001
F002
F003
F004
F015
F110
F116
F130
F211
F217
F218
F230
F313
F314
F315
F316
F317
F328
F332
F339
NOME
ROSSI
NERI
BIANCHI
DONATI
MARIANO
LUCINI
GILARDI
BIZET
BIANCHI
VERDI
VILLA
MOSCONI
MOSCONI
ANDREI
MONTELATICI
OTTOZ
FRENI
PUCCINI
ILLO
CUGINI
CITTA
MILANO
ROMA
MILANO
ROMA
VENEZIA
TORINO
VENEZIA
PAVIA
TORINO
PARMA
ROMA
ROMA
TORINO
null
FIRENZE
AOSTA
MODENA
LUCCA
ROMA
null
numero
3
0
4
2
0
0
4
1
0
2
1
2
2
2
2
1
3
0
0
0
2) Elencare le spedizioni che contengono solo prodotti di Milano.
select S.*
from spedizioni S
where exists ( select *
from sped_dettagli SD join prodotti PR on SD.prcod=pr.cod
where PR.citta="MILANO" and SD.spcod=S.spcod)
and not exists(select *
from sped_dettagli SD join prodotti PR on SD.prcod=pr.cod
where PR.citta<>"MILANO" and SD.spcod=S.spcod)
result set: VUOTO
se eseguita sostituendo a MILANO la stringa TORINO
result set:
SPCOD
SP03
DATASP
2005-12-01
CITTADEST
TORINO
CITTAPART
MILANO
QTA_TOTALE
300