Interrogazioni avanzate

BHK1
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?

Risposte
BHK1
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.

Rggb1
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).

BHK1


ho risolto così, il problema è che ho i campi vuoti con null e non con 0

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.