Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124

    Mysql Aiuto query complessa

    Salve ragazzi,


    Sto creando un database con MYSQL per la registrazione dei biglietti di un autobus ...vi dico quali sono i campi fondamentali cosi' avete piu' chiara la situazione... dunque:

    Attributi:
    NOME | COGNOME | TRATTA | DATA VIAGGIO

    Dove in "TRATTA" ci sono 4 tipi di viaggio... "Roma Cassino" "Roma Napoli" "Roma Viareggio"

    Vorrei effettuare una query tale che mi raggruppasse per ogni giorno e data il numero di viaggiatori cioè:

    "10/11/2012 Roma - Cassino" "120 Viaggiatori"
    "10/11/2012 Roma - Viareggio" "20 Viaggiatori"

    Per ogni data e tratta presente nel database...


    Ho provato con "SELECT * FROM utenti GROUP BY ("tratta") e me li raggruppa per le tratte....

    Come posso far un doppio raggruppamento sia per le tratte che per le date ?
    Ho provato con AND ma niente...

    E per fare il conteggio?



    Help me!

    Grazie anticipatamente
    Andrea

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    136
    Prova cosi:
    codice:
    SELECT tratta,data_viaggio,count(data_viaggio) as numero_viaggiatori FROM utenti GROUP BY `tatta`,`data`;
    Non hai una primary key?
    Saluti.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124
    Micidiale.... funziona!

    Si si c'è lho l'id non lho incluso nella descrizione per renderlo piu' facile da capire..

    Grazie mille!

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    136
    Se posti la tabella lo si può fare anche sull'id.Per esempio:


    codice:
    SELECT tratta,data_viaggio,COUNT(ID) AS numViaggiatori 
    FROM utenti 
    GROUP BY `tratta`,`data_viaggio`;
    Saluti.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    124
    Conviene farlo sull id ?

    CREATE TABLE IF NOT EXISTS `utenti` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `nome` varchar(50) CHARACTER SET utf8 NOT NULL,
    `cognome` varchar(50) CHARACTER SET utf8 NOT NULL,
    `cf` varchar(50) CHARACTER SET utf8 NOT NULL,
    `mail` varchar(50) CHARACTER SET utf8 NOT NULL,
    `mailpagamento` varchar(50) CHARACTER SET utf8 NOT NULL,
    `tel` bigint(15) NOT NULL,
    `data_acquisto` date NOT NULL,
    `data_viaggio` date NOT NULL,
    `tratta` varchar(40) CHARACTER SET utf8 NOT NULL,
    `prezzo` int(5) NOT NULL,
    `nomepdf` varchar(40) CHARACTER SET utf8 NOT NULL,
    `coupon` varchar(40) CHARACTER SET utf8 NOT NULL,
    `idtransazione` varchar(60) CHARACTER SET utf8 DEFAULT NULL,
    `status` int(1) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=99 ;

    Un po' Lunghetta!
    Per riazzerare il valore auto_increment come posso fare?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    136
    Penso che la query che già ho postato può andare bene.Certamente che conviene farlo sull'id.Dipende pure dal significato degli attributi.Per quanto riguarda auto_increment vedi qui: http://viralpatel.net/blogs/reseting...rement-column/.Saluti.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.