Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Raggruppare dipendenti

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173

    Raggruppare dipendenti

    Salve a tutti, come da titolo la mia domanda è semplice.
    Ho una tabella con tutte le lavorazioni effettuate (all'incirca 1500) e vorrei ordinarli per ore (dalle 7.00 in poi) e raggruppare per nome, cioè:

    Nome Ora inzio Ora fine Data
    Mario Rossi 7:00 14:00 05/08/2016
    Mario Rossi 14:00 14:15 05/08/2016
    Mario Rossi 14:15 13:00 05/08/2016
    Andrea Neri 7:00 12:00 05/08/2016
    Bruno Verdi 8:00 13:15 05/08/2016

    Come sarebbe possibile con una query? Ho provato a concatenare GROUP BY e ORDER BY, ma non riesco a tirare fuori nulla!

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Premesso che è una domanda da database più che php...non ti basta fare

    SELECT * FROM tabella ORDER BY nome ASC, data ASC, Ora_inizio ASC

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173
    Grazie, ho risolto.
    Avrei un'ultima domanda. Come posso visualizzare il totale delle ore lavorate ogni fine di giorno per ogni dipendente? Questo naturalmente in php, cioè:

    Nome Ora inzio Ora fine Data
    Mario Rossi 7:00 14:00 05/08/2016
    Mario Rossi 14:00 14:15 05/08/2016
    Mario Rossi 14:15 13:00 05/08/2016
    TOTALE ORE PER IL GIORNO 05/08/2016: X ORE
    Andrea Neri 7:00 12:00 06/08/2016
    TOTALE ORE PER IL GIORNO 06/08/2016: X ORE
    Bruno Verdi 8:00 13:15 07/08/2016
    TOTALE ORE PER IL GIORNO 07/08/2016: X ORE

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Se i tuoi orari sono di tipo time, puoi provare questa query:

    codice:
    SELECT nome, data, time_format(sum(timediff(ora_fine, ora_inizio)), '%H:%i') as totale_ore FROM tabella  GROUP BY nome, data ORDER BY nome, data

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173
    No, sono di tipo varchar

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    codice:
    SELECT nome, data, time_format(sum(timediff(STR_TO_DATE(ora_fine,'%H:%i'), STR_TO_DATE(ora_inizio,'%H:%i'))), '%H:%i') as totale_ore FROM tabella  GROUP BY nome, data ORDER BY nome, data

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    173
    Ho modificato la tua query in questo modo:
    codice:
    SELECT id_dipendente, data, time_format(sum(timediff(STR_TO_DATE(ora_fine,'%H:%i'), STR_TO_DATE(ora_inizio,'%H:%i'))), '%H:%i') as totale_ore FROM lavorazioni GROUP BY id_dipendente, data ORDER BY id_dipendente, data
    ad alcuni risultati mi stampa NULL

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.