Newsgroup: it.comp.appl.access
Titolo: Query per accoppiamento turni

Scusate il soggetto poco significativo, ma sintetizzare quello che cerco è
un po difficile , allora
Tabella "Iscritti Torneo" , formata da :
Nr : numerico
cognome giocatore : testo
punteggio : numerico
Esempio
Nr    Cognome    Punteggio
5      Alfa            100
6      Beta            90
1      Omega        80
2      Pippo          70
3      Papero        60
4      Pluto           50
Il Nr è attribuito in base a quando cronologicamente il giocatore si
iscrive al torneo;
Il punteggio lo ricavo da un'altra tabella ;
La query dovrebbe fare queste cose :) :
Accoppiare  il primo giocatore col punteggio più alto e farlo giocare col
primo giocatore ****che ha il punteggio più alto
della seconda metà degli iscritti***** nell'esempio dato :
Primo Incontro : Alfa - Pippo
(Alfa ha il punteggio più in alto in assoluto, Pippo è il primo come
punteggio di tutti i giocatori diviso 2)
Per determinare il secondo incontro si applica la stessa regola,
aggiungendone però un altra, faccio prima l'esempio :
Secondo Incontro : Papero - Beta
ovvero , facendo un paragone scacchistico, Papero  gioca in casa , sempre
però applicando la regola che Beta secondo giocatore col punteggio più alto
in assoluto pesca Papero che ha il secondo punteggio più alto relativamente
alla seconda metà dei giocatori iscritti.
Ne consegnue quindi che il :
Terzo incontro : Omega - Pluto
ovvero che vi è l'alternanza fra chi gioca in casa e chi gioca fuori casa.
Spero di essere stato chiaro !
Penso di aver creato 30 query senza venierne a capo, è oltre a risolvere il
problema sarei curioso di vedere se è possibile farlo con un'unica query
!!!!

> Spero di essere stato chiaro !
Be', insomma, ho avuto modo di capire che vuoi fare un programma che
gestisce un torneo di scacchi con il sistema italosvizzero solo perchè
sono io stesso uno scacchista!!
Dunque, prima di tutto ti consiglio di fare una JOIN delle due tabelle con
i giocatori ordinati per punteggio; di lì è tutto più facile, fai gli
accoppiamenti 
BIANCO      NERO
1           (n/2) + 1
(n/2) + 2   2
   ... 
Se hai difficoltà nell'implementare tutto ciò, scrivi pure. 
Chi sei? Fai attività agonistica?
In bocca al lupo!
        GS
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 In bocca al lupo!
grazie ciao !

     o  forse conviene partire direttamente dalla Tabella Classifica ??
Dunque, tu hai due tabelle: ti conviene riunirle in una tabella sola con
la query 
SELECT Iscritti.Nome,Classifica.ELO FROM Iscritti,Classifica WHERE
Iscritti.Nome=Classifica.Nome ORDER BY Classifica.ELO
e hai una tabella con i giocatori ordinati per punteggio ELO.
Naturalmente, con l'avanzare dei turni, ti conviene ordinarli prima per
punteggio in classifica e poi per punteggio ELO.
Per pescare il giocatore n. x in tabella utilizzi la sotto - query
SELECT Nome FROM Query1 WHERE ID = x
Per capire come si fa, da codice, a prelevare un valore da una
query/tabella puoi leggere gli esempi che ho fatto in altri interventi, io
uso il metodo .Open dell'oggetto ADODB.Recordset.
Poi, certo, nei turni successivi al primo devi tenere conto del fatto che
due scacchisti non si possono incontrare piů di una volta ... ma adesso č
meglio non mettere troppa carne al fuoco, per prima cosa implementa il
primo turno, poi ci pensi!
