Ciao a tutti,

dovrei realizzare una query abbastanza complessa (almeno per me) per la verifica di dati presi da un timbratore,
ho una lista di record composti da:

----------------------------------------------------------------------------------------------
| ID | cognomeNome | numeroBadge | dataTransito | oraTransito | direzione |
----------------------------------------------------------------------------------------------
| 1 | Pluto | 123456 | 2024-01-25 | 07:12:00 | 1 |
| 2 | Pluto | 123456 | 2024-01-25 | 17:00:00 | 2 |
| 3 | Pluto | 123456 | 2024-01-27 | 07:05:00 | 1 |
| 4 | Pluto | 123456 | 2024-01-27 | 12:08:00 | 2 |
| 5 | Pluto | 123456 | 2024-01-27 | 13:31:00 | 1 |
| 6 | Pluto | 123456 | 2024-01-27 | 17:48:00 | 2 |
----------------------------------------------------------------------------------------------

Dove direzione uguale a 1 equivale all'ingresso e uguale a 2 all'uscita.
I record 1 e 2 equivalgono ad un ingresso ed una uscita "normale",
i record 3, 4, 5 e 6 equivalgono a un ingresso, un uscita per andare a pranzo un ingresso al ritorno da pranzo e l'ucita per toranre a casa.

Dovrei fare questo: trovare nei vari record l'ora minima e l'ora massima per lo stesso numero di badge e per lo stesso giorno.

Esempio:
per i record 1 e 2, il risultato dovrebbe essere:
Pluto, il giorno 25 gennaio 2024 l'ora minima e' 07:12:00 e la massima 17:00:00.
per i record 3, 4, 5 e 6:
Pluto, per il giorno 27 gennaio 2024 l'ora minima 07:05:00 e la massima 17:48:00 (solo i record 3 e 6, saltando 4 e 5).

Sto provando a utilizzare una query di questo tipo (senza ciclare e mettendo numero badge e giorno fisso per provare):


Codice PHP:

// ESTRAI ORA MIN E ORA MAX PER LO STESSO UTENTE E LO STESSO GIORNO
$sql "SELECT id,numeroBadge,dataTransito,MIN(oraTransito) AS ora_minore,MAX(oraTransito) AS ora_maggiore FROM tabella WHERE numeroBadge = '123456' AND dataTransito = '2024-01-27' GROUP BY id, numeroBadge, dataTransito";
$result $connAvanzamento->query($sql);

while(
$row $result->fetch_assoc()) {
            
    echo 
"Badge: ".$row["numeroBadge"]." - Data: ".$row["dataTransito"]." - Ora minore: ".$row["ora_minore"]. "- Ora maggiore: ".$row["ora_maggiore"]."<br />";
    
}

$connAvanzamento->close(); 

Pero' non riesco proprio a farla funzionare, come posso risolvere?


Grazie per l'attenzione
Ciao