Classifica da una maschera filtrata tramite una casella combinata

di il
28 risposte

Classifica da una maschera filtrata tramite una casella combinata

Buonasera ho bisogno del vostro aiuto per risolvere un problema che altrimenti non saprei come fare.

Ho una maschera “partite” con una casella combinata “seleziona il torneo”  la quale mi filtra le partite del torneo che ho selezionato, ora vorrei fare in modo di creare una classifica in base a quelle partite ed a seconda del torneo selezionato. Ho una query che mi crea una classifica ma su tutte le partite ed i risultati che io inserisco e non su ogni singolo torneo.

la query è questa :

SELECT DISTINCTROW [Risultati Generali].[Giocatore A] AS Giocatore, Sum([Risultati Generali].PuntiA) AS [Punti], Sum([Risultati Generali].GiocateA) AS [Giocate],Sum([Risultati Generali].VinteA) AS [Vinte],Sum([Risultati Generali].PareggiA) AS [Pareggi],Sum([Risultati Generali].SconfitteA) AS [Sconfitte]
FROM [Risultati Generali]
GROUP BY [Risultati Generali].[Giocatore A];
UNION SELECT DISTINCTROW [Risultati Generali].[Giocatore B] AS Giocatore, Sum([Risultati Generali].PuntiB) AS [Punti], Sum([Risultati Generali].GiocateB) AS [Giocate],Sum([Risultati Generali].VinteB) AS [Vinte],Sum([Risultati Generali].PareggiB) AS [Pareggi],Sum([Risultati Generali].SconfitteB) AS [Sconfitte]
FROM [Risultati Generali]
GROUP BY [Risultati Generali].[Giocatore B]
ORDER BY Punti DESC, Giocate ASC;

Ringrazio anticipatamente per i consigli che mi darete.

28 Risposte

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    Forse se posti il file è più semplice capire la struttura del database e quindi darti consigli sulla correttezza di ciò che hai realizzato.

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    Ciao Stifone, grazie della risposta, come faccio a postare il file e dove ?

    Grazie, ciao.

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    Comprimendo il file che caricherai su un sito di condivisione dati tipo Dropbox, File Trasfer o altri quindi copiando la stringa di condivisione che inserirai nel post.

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    Ciao Stifone, io ho messo il file su Dropbox e mi fà copiare questa stringa, non sò se è giusto come ho fatto.

    Fammi sapere perchè sono ignorante su queste cose.

    Ciao e grazie.

    https://www.dropbox.com/scl/fi/bgndsbplua638wlmu956y/DatabaseScacchistico.accdb?rlkey=ra0a2v4b5dsxqv28tnvxzbgfb&st=w31ikqy3&dl=0

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    Come hai fatto a inserire valori oltre il 14 nel campo IDTorneo della tabella tblIncontri?

    Una possibile struttura potrebbe essere quella nell'immagine seguente

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    Ciao Stifone, grazie per il consiglio, dici che devo creare 2 tabelle Giocatori (giocatore A) e (Giocatore B) invece che una sola ? Per quanto riguarda i valori oltre il 14 francamente non ho capito nemmeno io perchè mi conta 25, 34, 39.

    Modificherò le tabelle e creerò le relazioni che mi hai mandato.

    Ciao, grazie.

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    Basta solo una tabella giocatori…

    La selezione la fai da sql al netto dei giocatori inseriti nella tabella torneo selezionando il torneo… 

    Magari al doppio click inserisci il giocatore e col requery vedi sparire dalla lista il giocatore inserito e viceversa se lo vuoi eliminare dal torneo in caso di correzioni.

    Creare due tabelle giocatori significa duplicare i record, cosa che puoi fre con 

    Select * from giocatori as giocatori1

    E

     select * from giocatori as giocatori2

    Poi ti indirizzo sulla select che si svuota man mano che incrementi i giocatori nella tabella tornei e si incrementa se li togli dalla tabella tornei in modo da non poter avere pippo contro se stesso.

    P.s. tutto questo supponendo di creare i vari tornei…

    In fase di risultati i campi giocatori devono essere bloccati da modifiche (ergo una maschera per inserire il calendario e una per i risultati).

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    18/08/2024 - serafino ha scritto:


    Ho una query che mi crea una classifica ma su tutte le partite ed i risultati che io inserisco e non su ogni singolo torneo.

    Mi era sfuggito l'oggetto del problema…

    Where idtorneo=[parametrodiscelta]

    Vedi se va bene

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    Ciao sihsandrea, grazie per le risposte ho creato le due tabelle “giocatore1” e “giocatore2” ed ho poi creato una query di unione per unire le 2 tabelle,  mi dici dove dovrei inserire la condizione where idtorneo ? nella query che mi crea la classifica che ho scritto in cima al post ?

    Ciao

    Grazie ancora per l'aiuto.

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    Non ha senso suddividere una tabella per poi riunirla…

    Se la query ti funziona… allora

    18/08/2024 - serafino ha scritto:


    SELECT DISTINCTROW [Risultati Generali].[Giocatore A] AS Giocatore, Sum([Risultati Generali].PuntiA) AS [Punti], Sum([Risultati Generali].GiocateA) AS [Giocate],Sum([Risultati Generali].VinteA) AS [Vinte],Sum([Risultati Generali].PareggiA) AS [Pareggi],Sum([Risultati Generali].SconfitteA) AS [Sconfitte]
    FROM [Risultati Generali]

    ********

    Where….

    ********
    GROUP BY [Risultati Generali].[Giocatore A];
    UNION SELECT DISTINCTROW [Risultati Generali].[Giocatore B] AS Giocatore, Sum([Risultati Generali].PuntiB) AS [Punti], Sum([Risultati Generali].GiocateB) AS [Giocate],Sum([Risultati Generali].VinteB) AS [Vinte],Sum([Risultati Generali].PareggiB) AS [Pareggi],Sum([Risultati Generali].SconfitteB) AS [Sconfitte]
    FROM [Risultati Generali]

    ********

    Where….

    ********
    GROUP BY [Risultati Generali].[Giocatore B]
    ORDER BY Punti DESC, Giocate ASC;

    La condizione che include solo quel torneo…

    Ovviamente sulle due select che hai unito.

    Io non ho testato la tua sql ma se funziona deve funzionare anche con la clausola where.

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    La tabella tblGiocatori deve essere una soltanto, nella finestra delle relazioni tblGiocatori_1 è soltanto un Alias ovvero una copia della tblGiocatori che serve per rappresentare la relazione e obbligare l'operatore a inserire un valore solo se esiste nella tabella tblGiocatori.

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    27/08/2024 - sihsandrea ha scritto:


    Poi ti indirizzo sulla select che si svuota man mano che incrementi i giocatori nella tabella tornei e si incrementa se li togli dalla tabella tornei in modo da non poter avere pippo contro se stesso.

    Select giocatoreid, nominativo 
    From giocatori
    Left join tornei on giocatoreid=idgiocatoretorneo
    Where idgiocatoretorneo is null and id torneo=[torneoselezionato]

    Man mano che inserisci un giocatore viene tolto dall'elenco.

    Adattala alla tua esigenza (hai due idgiocatore nella tabella tornei).

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    Ciao sihsandrea, ho modificato la query come hai detto tu ed ora nella classifica mi appare l'ID del torneo ma non capisco come fare. Io ho la maschera “risultati” dove selezionando il torneo da una casella combinata mi appaiono i risultati solo di quel torneo ora vorrei creare un pulsante “crea classifica” che mi apra la maschera, appunto, classifica che prenda i risultati solo di quel torneo e mi faccia la classifica; ho fatto varie prove ma tra errori ecc. non riesco ad ottenere quello che voglio.

  • Re: Classifica da una maschera filtrata tramite una casella combinata

    29/08/2024 - serafino ha scritto:


    Ciao sihsandrea, ho modificato la query come hai detto tu ed ora nella classifica mi appare l'ID del torneo ma non capisco come fare. Io ho la maschera “risultati” dove selezionando il torneo da una casella combinata mi appaiono i risultati solo di quel torneo ora

    Quindi funziona ma vorresti che il torneo sia selezionato dalla combobox?

    †*************

    Where

    ( idtorneo=combobox and combobox<>'' ) 

    or 

    (Idtorneo<>'' and combobox='')

    ***************

    Supponendo che la combo abbia gli id tornei + un id bianco per selezionare tutti.

    29/08/2024 - serafino ha scritto:


    ora vorrei creare un pulsante “crea classifica” che mi apra la maschera, appunto, classifica che prenda i risultati solo di quel torneo e mi faccia la classifica; ho fatto varie prove ma tra errori ecc. non riesco ad ottenere quello che voglio.

    Questa è un altro quesito

Devi accedere o registrarti per scrivere nel forum
28 risposte