Originariamente inviato da ottoboni77
per ciascun gruppo dovrei estrarre solo la somma puntipart+montepremi+par(totale)
praticamente io ho fatto una query che mi da il totale puntipart+montepremi+par.
Una volta trovato il totale di questi ho bisogno di una query che mi estrae per ogni giocatore i 7 migliori totali (di quel giocatore).
Originariamente inviato da ottoboni77
una cosa non capisco....
perchè hai dovuto inserire id_giocatore dalla class_uomini? Io vorrei tenere come riferimento tessera che poi mi va a pescare i dati del giocatore nella tabella giocatori.
Inoltre ho notato che la query genera si il totale ma non per ogni giocatore bensì per ogni "riga" (solo i 7 migliori).
E' possibile "raggruppare" anche per tessera/giocatore?
Pensavo bastasse un GROUP BY ma non funziona.
Deciditi.
Prima dici che ti servono per ogni giocatore i migliori 7 totali e la query che ti ho scritto fa esattamente quello.
Se vuoi raggruppare per tessera/giocatore basta che fai un group by.
codice:
SELECT giocatori.id, giocatori.tessera, Sum(tab.totale) as somma
FROM [SELECT giocatori.id, giocatori.tessera, class_uomini.totale
FROM giocatori INNER JOIN [select class_uomini.id,class_uomini.id_giocatore,(puntipart+montepunti+par) as totale from class_uomini]. AS class_uomini ON giocatori.id = class_uomini.id_giocatore
WHERE (((class_uomini.id) In (select top 7 id from class_uomini
where class_uomini.id_giocatore = giocatori.id order by (puntipart+montepunti+par) desc,class_uomini.id)))
ORDER BY giocatori.id, class_uomini.totale DESC , class_uomini.id]. AS tab
GROUP BY giocatori.id, giocatori.tessera;
La query per poter funzionare necessita che le tabelle siano strutturate in quel modo.
A parte che senza fare così non è risolvibile (almeno non tramite sql, forse con vba) va anche detto che è buona norma quando si va a creare un join tra tabelle che il campo "comune" che le mette in relazione sia un valore numerico. Il tuo codice tessera è una stringa e anche in altri contesti renderebbe la query molto più lenta da eseguire (e questa query è già abbastanza pesante di suo, specialmente per un giocattolino come access).
Una volta che ciascun giocatore è identificato da un codice univoco (1,2,3,ecc) non hai alcun problema a recuperare tutte le informazioni che vuoi (numero tessera, dati anagrafici e quant'altro).