Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    202

    Calcolare una classifica da una query

    Salve,

    con la seguente query
    codice:
    SELECT casa.nome_sq as casa , ospiti.nome_sq as ospiti, reti_a, reti_b
    FROM partita
    JOIN squadra AS casa ON id_sq_a = casa.id_sq
    JOIN squadra AS ospiti ON id_sq_b = ospiti.id_sq
    Ottengo la seguente tabella
    codice:
    +----------+----------+--------+--------+
    | casa     | ospiti   | reti_a | reti_b |
    +----------+----------+--------+--------+
    | Spagna   | Corea    |     31 |     30 |
    | Russia   | Slovenia |     28 |     25 |
    | Croazia  | Islanda  |     34 |     30 |
    | Corea    | Russia   |     35 |     32 |
    | Slovenia | Croazia  |     26 |     27 |
    | Islanda  | Spagna   |     23 |     31 |
    | Croazia  | Corea    |     29 |     26 |
    | Islanda  | Slovenia |     30 |     25 |
    | Spagna   | Russia   |     29 |     26 |
    | Corea    | Islanda  |     34 |     30 |
    | Spagna   | Slovenia |     41 |     28 |
    | Russia   | Croazia  |     25 |     26 |
    | Slovenia | Corea    |     26 |     23 |
    | Croazia  | Spagna   |     30 |     22 |
    | Russia   | Islanda  |     34 |     30 |
    +----------+----------+--------+--------+
    Ora da tale tabella dovrei calcolare la classifica:
    Squadra, giocate, punti, vittorie, sconfitte pareggi, gf e gs.
    Preciso che non si tratta di un campionato, bensì di tornei (mondiali, eurupei ecc...) con i risultati già acquisiti, quindi non verranno + cambiati.
    Si tratta poi di un girone, quelli li filtrerò dopo.
    Che approccio mi consigliate?
    Usare altre tabelle x le classifiche o con query?
    E come faccio a fare sta query?
    Grazie

  2. #2

    Re: Calcolare una classifica da una query

    Originariamente inviato da Dexx

    Ora da tale tabella dovrei calcolare la classifica:
    Squadra, giocate, punti, vittorie, sconfitte pareggi, gf e gs.
    Preciso che non si tratta di un campionato, bensì di tornei (mondiali, eurupei ecc...) con i risultati già acquisiti, quindi non verranno + cambiati.
    Si tratta poi di un girone, quelli li filtrerò dopo.
    Che approccio mi consigliate?
    Usare altre tabelle x le classifiche o con query?
    E come faccio a fare sta query?
    Grazie
    bhe più vuoi statistiche approfondite e più tabelle devi usare!

    cmq sarebbe opportuno che tu ci posti la struttura delle tabelle che usi nella query soprastante in modo che noi possiamo avere una visione più ampia della situazione..
    "Due cose riempiono l’animo di ammirazione e venerazione sempre nuova e crescente, quanto piú spesso e piú a lungo la riflessione si occupa di esse: il cielo stellato sopra di me, e la legge morale in me..." Immanuel Kant

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    202
    ecco qua:
    codice:
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella 'partita'
    -- 
    
    CREATE TABLE partita (
      id_p int(10) unsigned NOT NULL auto_increment,	#id partita
      id_t_p int(10) unsigned NOT NULL,			#id torneo
      id_tipo_p int(10) unsigned NOT NULL,			#id tipo partita
      id_sq_a int(10) unsigned NOT NULL,			#id squadra a
      id_sq_b int(10) unsigned NOT NULL,			#id squadra b
      reti_a int(2) unsigned NOT NULL default '0',
      reti_b int(2) unsigned NOT NULL default '0',
      PRIMARY KEY  (id_p)
    ) ENGINE=MyISAM ;
    
    
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella 'squadra'
    -- 
    
    CREATE TABLE squadra (
      id_sq int(10) unsigned NOT NULL auto_increment,
      nome_sq varchar(100) character set latin1 NOT NULL,
      tipo_sq set('N','T') character set latin1 NOT NULL,	#nazionale/team
      PRIMARY KEY  (id_sq)
    ) ENGINE=MyISAM ;
    
    
    
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella 'tipo_partita'
    -- 
    
    CREATE TABLE tipo_partita (
      id_tipo int(10) unsigned NOT NULL auto_increment,
      nome_tipo varchar(100) character set latin1 NOT NULL,
      PRIMARY KEY  (id_tipo)
    ) ENGINE=MyISAM ;
    
    
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella 'torneo'
    -- 
    
    CREATE TABLE torneo (
      id_t int(10) unsigned NOT NULL auto_increment,
      anno int(4) unsigned NOT NULL,
      luogo varchar(100) character set latin1 NOT NULL,
      PRIMARY KEY  (id_t)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COLLATE=latin2_croatian_ci AUTO_INCREMENT=2 ;
    
    -- 
    -- Dump dei dati per la tabella 'partita'
    -- 
    
    INSERT INTO partita VALUES (1, 1, 1, 2, 3, 31, 30);
    INSERT INTO partita VALUES (2, 1, 1, 4, 6, 28, 25);
    INSERT INTO partita VALUES (3, 1, 1, 1, 5, 34, 30);
    INSERT INTO partita VALUES (4, 1, 1, 3, 4, 35, 32);
    INSERT INTO partita VALUES (5, 1, 1, 6, 1, 26, 27);
    INSERT INTO partita VALUES (6, 1, 1, 5, 2, 23, 31);
    INSERT INTO partita VALUES (7, 1, 1, 1, 3, 29, 26);
    INSERT INTO partita VALUES (8, 1, 1, 5, 6, 30, 25);
    INSERT INTO partita VALUES (9, 1, 1, 2, 4, 29, 26);
    INSERT INTO partita VALUES (10, 1, 1, 3, 5, 34, 30);
    INSERT INTO partita VALUES (11, 1, 1, 2, 6, 41, 28);
    INSERT INTO partita VALUES (12, 1, 1, 4, 1, 25, 26);
    INSERT INTO partita VALUES (13, 1, 1, 6, 3, 26, 23);
    INSERT INTO partita VALUES (14, 1, 1, 1, 2, 30, 22);
    INSERT INTO partita VALUES (15, 1, 1, 4, 5, 34, 30);
    
    
    -- 
    -- Dump dei dati per la tabella 'squadra'
    -- 
    
    INSERT INTO squadra VALUES (1, 'Croazia', 'N');
    INSERT INTO squadra VALUES (2, 'Spagna', 'N');
    INSERT INTO squadra VALUES (3, 'Corea', 'N');
    INSERT INTO squadra VALUES (4, 'Russia', 'N');
    INSERT INTO squadra VALUES (5, 'Islanda', 'N');
    INSERT INTO squadra VALUES (6, 'Slovenia', 'N');
    INSERT INTO squadra VALUES (7, 'Francia', 'N');
    INSERT INTO squadra VALUES (8, 'Ungheria', 'N');
    INSERT INTO squadra VALUES (9, 'Germania', 'N');
    INSERT INTO squadra VALUES (10, 'Grecia', 'N');
    INSERT INTO squadra VALUES (11, 'Brasile', 'N');
    INSERT INTO squadra VALUES (12, 'Egitto', 'N');
    
    
    -- 
    -- Dump dei dati per la tabella 'tipo_partita'
    -- 
    
    INSERT INTO tipo_partita VALUES (1, 'Girone A');
    INSERT INTO tipo_partita VALUES (2, 'Girone B');
    INSERT INTO tipo_partita VALUES (3, 'Quarti di finale');
    INSERT INTO tipo_partita VALUES (4, 'Semifinali 5°-8° posto');
    INSERT INTO tipo_partita VALUES (5, 'Semifinali 1°-4° posto');
    INSERT INTO tipo_partita VALUES (6, 'Finale 11°-12° posto');
    INSERT INTO tipo_partita VALUES (7, 'Finale 9°-10° posto');
    INSERT INTO tipo_partita VALUES (8, 'Finale 7°-8° posto');
    INSERT INTO tipo_partita VALUES (9, 'Finale 5°-6° posto');
    INSERT INTO tipo_partita VALUES (10, 'Finale 3°-4° posto');
    INSERT INTO tipo_partita VALUES (11, 'Finale 1°-2° posto');
    
    
    -- 
    -- Dump dei dati per la tabella 'torneo'
    -- 
    
    INSERT INTO torneo VALUES (1, 'Atene', '2004');

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    202
    Lo so che è tosta ma almeno qualcuno sa dirmi se la classifica va calcolata con una query?
    saranno 5-6 query annidate, penso...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.