Query per ricerca ritardo evento

di il
2 risposte

Query per ricerca ritardo evento

Salve a tutti,
sono a chiedere il vostro aiuto per tentare di risolvere una query che mi sta facendo impazzire da 2 giorni.
Ho una tabella (tb_match) nella quale raccolgo i dati di eventi calcistici (Nazione, Lega, Match, Risultati, Quote1X2, etc). Attraverso una query (q_match), con dei campi calcolati ottengo nuove colonne dove raccolgo statistiche sul singolo evento (Esito 1X2, percentuali di successo, etc). Di seguito un estratto del risultato ottenuto:

QUOTA 1	QUOTA X	QUOTA 2	ESITO 1X2
2,5	3,5	2,62	1
2,25	3,2	3,25	X
2,87	3,39	2,37	2
1,8	3,75	3,39	2
Poi ho un'ulteriore query che mi calcola quanti eventi 1, quanti x e quanti 2 si sono verificati per una determinata terzina di quote, ottenendo:

QUOTA 1	QUOTA X	QUOTA 2	TOT_1X2	TOT_EV1	TOT_EVX	TOT_EV2
2,5	3,5	2,62	18	10	3	5
2,25	3,2	3,25	13	3	6	4
2,87	3,39	2,37	22	10	4	8
1,8	3,75	3,39	11	8	2	1
Infine ho un'ultima query con la quale estraggo, per ogni terzina di quote, tutti gli eventi usciti, ovvero:

QUOTA 1	QUOTA X	QUOTA 2	ESITO
2,5	3,5	2,62	1
2,5	3,5	2,62	X
2,5	3,5	2,62	2
2,5	3,5	2,62	2
Fin qui tutto ok. Il problema sorge nel momento in cui voglio aggiungere alla query un'ulteriore colonna (chiamata ritardi) che mi calcola il ritardo di un evento (1 oppure X oppure 2) per una determinata terzina di quote 1X2 e che me lo riproponga per ogni record. Il risultato che vorrei ottenere è il seguente:

QUOTA 1	QUOTA X	QUOTA 2	TOT_1X2	TOT_EV1	TOT_EVX	TOT_EV2	RIT1	RITX	RIT2
2,5	3,5	2,62	18	10	3	5	3	2	0
Spero di essermi spiegato bene perchè la cosa è abbastanza contorta, o almeno lo è per me che non sono espertissimo di Database.
Grazie anticipatamente.

2 Risposte

  • Re: Query per ricerca ritardo evento

    Fin qui tutto ok. Il problema sorge nel momento in cui voglio aggiungere alla query un'ulteriore colonna (chiamata ritardi) che mi calcola il ritardo di un evento (1 oppure X oppure 2) per una determinata terzina di quote 1X2 e che me lo riproponga per ogni record. Il risultato che vorrei ottenere è il seguente:
    CODICE: SELEZIONA TUTTO
    
    QUOTA 1	QUOTA X	QUOTA 2	TOT_1X2	TOT_EV1	TOT_EVX	TOT_EV2	RIT1	RITX	RIT2
    2,5	3,5	2,62	18	10	3	5	3	2	0
    In più cosa sarebbero questi ritardi?
    In quale delle tre query vorresti aggiungere questi ritardi?
    Che espressione useresti per calcolare questi ritardi?
  • Re: Query per ricerca ritardo evento

    Ciao e grazie per la risposta....come già anticipato, la colonna ritardi dovrebbe riportare i ritardi degli eventi 1-x-2 per ogni terzina di quote. Ad esempio, nell'ultimo mese ci sono state 10 partite che hanno avuto le quote 1=2,5, X=3,5, 2=2,65. Ovviamente queste partite sono terminate con un determinato risultato, quindi immaginiamo che:
    Partita 1 (con quota1= 2,5, quotax=3,5, quota2=2,62) - Terminata con Segno 2
    Partita 2 (con quota1= 2,5, quotax=3,5, quota2=2,62) - Terminata con Segno X
    Partita 3 (con quota1= 2,5, quotax=3,5, quota2=2,62) - Terminata con Segno 2
    Partita 4 (con quota1= 2,5, quotax=3,5, quota2=2,62) - Terminata con Segno 1
    Partita 5 (con quota1= 2,5, quotax=3,5, quota2=2,62) - Terminata con Segno 1
    Partita 6 (con quota1= 2,5, quotax=3,5, quota2=2,62) - Terminata con Segno 1
    Partita 7 (con quota1= 2,5, quotax=3,5, quota2=2,62) - Terminata con Segno X
    Partita 8 (con quota1= 2,5, quotax=3,5, quota2=2,62) - Terminata con Segno 2
    Partita 9 (con quota1= 2,5, quotax=3,5, quota2=2,62) - Terminata con Segno X
    Partita 10 (con quota1= 2,5, quotax=3,5, quota2=2,62) - Terminata con Segno 2

    Da questa situazione io vorrei contare da quante partite non si verifica il segno 1 (nell'esempio mi dovrebbe dare come risultato 4). Stessa cosa dovrei fare con i segni X e 2.
    A me servirebbe aggiungere la colonna ritardi (che poi in realtà sono 3 colonne, ovvero ritardi1, ritardix e ritardi2) alla prima query (chiamata q_match), ovvero la query che io definisco "totale" perchè sarà quella che conterrà tutte le informazioni che mi servono.
    La query con la quale sono riuscito ad ottenere i risultati che più si avvicinano alle mie esigenze è la seguente:

    SELECT Count(*) AS ritardi1
    FROM q_match
    WHERE q_match.ID>(SELECT top 1 ID FROM q_match WHERE esito_1X2="1" ORDER BY ID desc);

    Il problema è che questa query considera l'intero campo "esito_1x2", indipendentemente dalle quote, quindi per ogni record mi riporta sempre e solo il numero corrispondente all'ultimo evento "1" dell'intera colonna "esito_1x2".
Devi accedere o registrarti per scrivere nel forum
2 risposte