J'ai recherché et je sais qu'il y a des questions similaires, mais aucune d'entre elles ne semble répondre à cette question particulière. J'essaie de connaître le nombre total de jours où un employé a travaillé selon un horaire donné. Pour ce faire, je compte le nombre total de lignes que l'employé affiche dans le tableau «horaires». Seulement, nous rencontrons un problème si l'employé est programmé deux fois le même jour.Requête PHP MySQL - groupe par date dans le champ datetime
Pour résoudre ce problème, je veux compter le nombre total de lignes et trier par DATE dans un champ DATETIME.
requête actuelle:
$days = mysql_query("SELECT emp_id FROM schedules
WHERE sch_id = '$sch_id'
AND emp_id = '$emp_data[emp_id]'");
$tot_days = mysql_num_rows($days);
Je voudrais changer à:
$days = mysql_query("SELECT emp_id FROM schedules
WHERE sch_id = '$sch_id'
AND emp_id = '$emp_data[emp_id]'
GROUP BY start_date");
// "start_date" is a datetime field. Need to sort by date only YYYY-MM-DD
$tot_days = mysql_num_rows($days);
Toute pensée?
Alors, quel est le problème avec la 2ème requête? N'est-ce pas ce que tu veux? Si vous affichez les dates et que vous vouliez le commander, il suffit d'ajouter 'ORDER BY start_date' à la fin de la 2ème. –
Cela serait ordonné par le datetime exacte. Datetime descend à la seconde - deux ne se ressemblent pas. Cela doit se rapporter uniquement à la date, sans compter l'heure. – Oseer