UmbertoBar
26-11-2008, 03:48
Salve a tutti, sto seguendo un corso di Basi di Dati e, ahimè, non ci capisco granché!
Devo fare questa esercitazione:
Sono date le relazioni seguenti (le chiavi primarie sono sottolineate):
PITTORE(CodP, NomeP, DataNascita, Nazione)
QUADRO(CodQ, Titolo, CodP)
ESPOSIZIONE(CodQ, DataInizio, DataFine, NomeGalleria)
Per ogni nazione, visualizzare il codice del pittore che ha dipinto il numero massimo di
quadri e il relativo numero di quadri dipinti.
La soluzione da me proposta è:
SELECT P.CodP, COUNT(Q.CodQ) AS NumQ, P.Nazione
FROM Pittore P, Quadro Q
WHERE P.CodP=Q.CodP
GROUP BY CodP, Nazione
HAVING MAX(NumQ)
Ho provato a farla girare caricando una tabella di prova su un dominio di mia proprietà, ma non funziona!
Mi dice che il campo NumQ non esiste ...
Idee?
Grazie per l'aiuto
Devo fare questa esercitazione:
Sono date le relazioni seguenti (le chiavi primarie sono sottolineate):
PITTORE(CodP, NomeP, DataNascita, Nazione)
QUADRO(CodQ, Titolo, CodP)
ESPOSIZIONE(CodQ, DataInizio, DataFine, NomeGalleria)
Per ogni nazione, visualizzare il codice del pittore che ha dipinto il numero massimo di
quadri e il relativo numero di quadri dipinti.
La soluzione da me proposta è:
SELECT P.CodP, COUNT(Q.CodQ) AS NumQ, P.Nazione
FROM Pittore P, Quadro Q
WHERE P.CodP=Q.CodP
GROUP BY CodP, Nazione
HAVING MAX(NumQ)
Ho provato a farla girare caricando una tabella di prova su un dominio di mia proprietà, ma non funziona!
Mi dice che il campo NumQ non esiste ...
Idee?
Grazie per l'aiuto