|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jan 2006
Messaggi: 21
|
E' GIUSTA SECONDO VOI QUESTA QUERY?
Ciao a tutti, volevo chiedere se cortesemente qualcuno potrebbe correggere questa query e magari suggerirmi un
metodo migliore nel caso in cui sia giusta, anche se ne dubito. Sia dato il seguente schema relazionale: Organizzazione(codice, nome, città, data_fondazione) codice è chiave Socio(codice, nome, città_resistenza, data_nascita, data_affilizione, organizzazione) codice è chiave Evento(codice, descrizione, data, organizzazione_ospitante) codice è chiave Contatto(codice, modalità, data, socio_contattante, socio_contatto) codice è chiave Invito(codice_evento, codice_socio, ruolo) codice_evento e codice_socio sono chiave Si osservi che la relazione Socio contiene informazioni su tutti gli associati, specificando, per ciascuno di essi, l'organizzazione di appartenenza. Inoltre la relazione Invito continene informazioni sulla partecipazione dei soci agli eventi, specificando anche il ruolo svolto dai soci delle varie partecipazioni. La relazione Contatto contiene informazioni su tutti i contatti tra soci. Si noti che due soci, S1 ed S2, hanno avuto un contatto se S1 ha contattato S2 oppure S2 ha contattato S1. Si osservi inoltre che gli attributi Socio.Organizzazione e Evento.organizzazione_ospitante si riferiscono all'attributo Organizzazione.codice, mentre gli attributi Contatto.socio_contattante e Contatto.socio_contatto si riferiscono all'attributo Socio.codice Per ogni organizzazione il numero medio di eventi ospitati in un anno. Create view OAC(Organizzazione, anno, evento) as (SELECT organizzazione_ospitante, YEAR(data) as anno, codice FROM Evento E) Create view NumeroAnni(Organizzazione, anni) as (Select Organizzazione, Cont(anno) FROM AOC GROUPBY organizzazione) Create view NumeroEventi(Organizzazione, numeventi) as (Select Organizzazione, Cont(evento) FROM AOC GROUPBY organizzazione) SELECT NE.organizzazione, (NE.numeventi/NA.anni) as media FROM NumeroEventi NE, NumeroAnni NA WHERE NE.organizzazione=NA.organizzazione GRAZIE A TUTTI!! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Perché crei 3 view ? Non ti bastava raggruppare il tutto direttamente in una sola query ?
|
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Jan 2006
Messaggi: 21
|
HAI RAGIONE!
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Basta rimettere le query insieme:
select * from (select z from t1 group by z) as x, (select k from t group by k) as y where x.z = y.k; Le query le puoi annidare nel from anche più volte... |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:45.