|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 727
|
-->URGENTE<-- interrogazione SQL
ciao ragazzi urgerebbe un aiutino per un interrogazione in SQL...
lo schema è questo ATLETI (CodFisc , Nome, Nazione, DataNas) GARE (CodGara,Specialità,Disciplina, Data, Sede) PARTECIPA (Atleta,Gara,PosizArrivo) e l'interrogazione è Nome, Nazione, data di nascita degli atleti che hanno vinto (PosizArrivo=1) più di 3 gare nella disciplina "atletica leggera" specialità "salto in alto"... UFFA non rieco a capire come fare!!!
__________________
If You want a job done right you do it yourself A64 3200+@240x10 Mhz | A8N SLI | X800GT 256MB Sapphire 570/580 | HD WD160GB | MASTER DVD SONY DRU-810A | 2x512 ram twinmos |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2005
Città: Roma
Messaggi: 371
|
Guarda, ad occhio non credo si possa fare per come la hai spiegata tu.
Ti spiego. Servirebbe un a query che metta in join le tre tabelle, ma la cosa non è possibile in quanto mancano proprio le condizioni di join; in pratica le tre tabelle dovrebbero avere almeno un campo in comune su cui impostare la condizione di join ma da come l'hai descritta tu tra i campi della tabella ATLETI (CodFisc , Nome, Nazione, DataNas) e GARE (CodGara,Specialità,Disciplina, Data, Sede) non c'è un campo comune su cui impostare la condizione di join. Poi non si capisce il campo ATLETA della tabella PARTECIPA a quale attributo dell'ATLETA si riferisca (CodFisc , Nome) ????? Ciao
__________________
Tu sei un eroe. Quelli che hanno avuto a che fare con il tuo eroismo ti hanno chiamato "L'uomo senza paura". Si sbagliavano....stanotte hai paura. Perchè presto dovrai lasciare questo posto, questo rifugio e dire a un bambino cieco che si fidava di te...che a volte gli eroi falliscono. - DEVIL "Cucciolo di bambino" |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2002
Città: Bassano del Grappa (VI)
Messaggi: 6613
|
Select ATLETI.Nome, ATLETI.Nazione, ATLETI.DataNasc
FROM ATLETI INNER JOIN (SELECT COUNT(PARTECIPA.Atleta) AS C_atleta, PARTECIPA.Atleta FROM GARE INNER JOIN PARTECIPA ON (PARTECIPA.Gara=GARE.CodGara) WHERE (GARE.Specialità='salto in alto' AND GARE.PosArrivo=1) GROUP BY PARTECIPA.Atleta) AS JOIN1 ON ATLETI.CodFisc=JOIN1.Atleta WHERE (JOIN1.C_atleta>3) Qualcosa del genere?
__________________
RunningForum.it |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Dec 2001
Messaggi: 264
|
Anche cosi magari?
SELECT ATLETI.Nome,ATLETI.Nazione,ATLETI.DataNas FROM ATLETI,GARE,PARTECIPA WHERE ATLETI.CodFisc=PARTECIPA.Atleta AND GARE.CodGara=PARTECIPA.Gara AND PARTECIPA.PosizArrivo=1 AND GARE.Disciplina='atletica leggera' AND GARE.Specialità='salto in alto' GROUP BY ATLETI.Nome,ATLETI.Nazione,ATLETI.DataNas HAVING COUNT(*)>3 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2002
Città: Bassano del Grappa (VI)
Messaggi: 6613
|
Alla fine le condizioni e la tripla join c'è sempre.
A me non piace usare il COUNT (*) e non l'ho mai usato nella clausola HAVING. Poi non è che io sia sto gran esperto, anzi....
__________________
RunningForum.it |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Morio Cho
Messaggi: 2595
|
io in generale (SQL-2) farei così:
Codice:
select A.Nome, A.Nazione, A.DataNas from ATLETI A inner join PARTECIPA P inner join GARE G on P.Gara = G.CodGara on A.CodFisc = P.Atleta where G.Disciplina = 'atletica leggera' and G.Specialità = 'salto in alto' and P.PosizArrivo = 1 group by A.Nome, A.Nazione, A.DataNas having count(P.PosizArrivo) > 3;
__________________
Sono GULDO, non Guido! Cioè, certo che guido... Bé, insomma, avete capito ![]() Linux 2.6.26|Debian|Debian@Hwupgrade|Debian Clan|Solo Puffin ti darà forza e grinta a volontà! NERD rank 62|Milla Jovovich|大事な物はいつも形の無い物だけ Sito e Forum sul Giappone|La mia libreria su aNobii |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2005
Città: Palermo
Messaggi: 2579
|
sezione sbagliata
__________________
Utente gran figlio di Jobs ed in via di ubuntizzazione Lippi, perchè non hai convocato loro ? |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Feb 2001
Città: Torino
Messaggi: 11769
|
spostata in "programmazione".
__________________
Eroi da non dimenticare: Nicola Calipari (04/03/2005) e Vittorio Arrigoni (14/04/2011) e Bradley Manning. Sono certo che anche i francesi si indignarono per il fatto che i tedeschi, piuttosto che veder dissolvere la loro nazione, preferirono il nazismo. Chi non impara la storia... |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 727
|
anche se con estremo ritardo.. grazie mille ragazzi...
__________________
If You want a job done right you do it yourself A64 3200+@240x10 Mhz | A8N SLI | X800GT 256MB Sapphire 570/580 | HD WD160GB | MASTER DVD SONY DRU-810A | 2x512 ram twinmos |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:56.



















