Interrogazioni avanzate
Data un base di dati
Sale(codS,nome)
Autori(codA,nome,citta)
Opere(codO,nome,tipologia,autore(FK),sala(FK))
restauri(opera(FK),datainizio,datafine,motivo)
Selezionare il nome della sala o delle sale in cui è esposto il maggior numero di sculture.
Ecco come l'ho risolta io:
c'era una strada più semplice?
Sale(codS,nome)
Autori(codA,nome,citta)
Opere(codO,nome,tipologia,autore(FK),sala(FK))
restauri(opera(FK),datainizio,datafine,motivo)
Selezionare il nome della sala o delle sale in cui è esposto il maggior numero di sculture.
Ecco come l'ho risolta io:
c'era una strada più semplice?
Risposte
Ecco un interrogazione che non riesco a fare:
definire all'interno dello schema una vista "statistiche" che contiene per ogni autore, il codice identificativo(codA), il nome (attributo "nome"), il numero dei quadri esposti (num_q),il numero delle sculture esposte (num_s), il numero dei quadri che hanno subito un restauro (num_qr), il numero delle sculture che hanno subito un restauro(num_sr).
Ecco cosa sono riuscito a fare
Il problema e che non riesco a fare un left join fra le tabelle in modo tale che gli autori che non hanno opere esposte o che non hanno opere restaurate compaiano con i campi vuoti.
definire all'interno dello schema una vista "statistiche" che contiene per ogni autore, il codice identificativo(codA), il nome (attributo "nome"), il numero dei quadri esposti (num_q),il numero delle sculture esposte (num_s), il numero dei quadri che hanno subito un restauro (num_qr), il numero delle sculture che hanno subito un restauro(num_sr).
Ecco cosa sono riuscito a fare
Il problema e che non riesco a fare un left join fra le tabelle in modo tale che gli autori che non hanno opere esposte o che non hanno opere restaurate compaiano con i campi vuoti.
Un paio di hint:
1) Si vuole sapere se l'opera ha subito un restauro, non se è esposta.
2) Per sapere quante opere sono esposte potresti contare il campo opere.sala; se è NULL, non è esposta e quindi non viene contata.
Però tu vorresti far venire zero '0' quando un autore non ha opere esposte/restaurate, ho capito bene? (anche perché "compaiono con campi vuoti" non mi dice nulla).
1) Si vuole sapere se l'opera ha subito un restauro, non se è esposta.
2) Per sapere quante opere sono esposte potresti contare il campo opere.sala; se è NULL, non è esposta e quindi non viene contata.
Però tu vorresti far venire zero '0' quando un autore non ha opere esposte/restaurate, ho capito bene? (anche perché "compaiono con campi vuoti" non mi dice nulla).
ho risolto così, il problema è che ho i campi vuoti con null e non con 0