Le tableau mysql nous travaillons a données dans le format suivant:Conversion du résultat d'une table MySQL selon l'exigence
entityId status updated_date
-------------------------------
1 1 29/05/2017 12:00
1 2 29/05/2017 03:00
1 3 29/05/2017 07:00
1 4 29/05/2017 14:00
1 5 30/05/2017 02:00
1 6 30/05/2017 08:00
2 1 31/05/2017 03:00
2 2 31/05/2017 05:00
.
.
Ainsi, chaque id entité a 6 statuts, et chaque état a une datetime de mise à jour. Chaque statut a une activité attachée à celui-ci. Par exemple 1 - déplacement vers B. etc
je dois obtenir une sortie dans le format ci-dessous pour id entité spécifique, par exemple 3 et 4. Left Point A, je dois - Commencé voyage 2 - première destination atteint 3 le temps pour les statuts 3 et 4 indépendamment.
entity_id time_started_journey time_reached_first_destination
(update time of status 3) (update time of status 4)
--------------------------------------------------------------
1 29/05/2017 7:00 29/05/2017 14:00
2 30/05/2017 7:00 30/05/2017 16:00
Plus tard, j'ai besoin de calculer le temps total qui serait la différence entre les deux.
Comment puis-je atteindre le résultat souhaité en utilisant mysql.
J'ai essayé d'utiliser l'opérateur Union
mais je ne peux pas le faire séparément. Également, essayé en utilisant le cas when operator
avec la requête ci-dessous, mais a échoué.
select distinct entityid,
(case status when 3 then freight_update_time else 0 end)
as starttime,
(case status when 4 then freight_update_time else 0 end) as endtime
from table ;
Quelqu'un peut-il nous éclairer à ce sujet?
Vous êtes sur la bonne voie avec les expressions de cas, mais vous aurez besoin d'utiliser l'agrégation (GROUP_CONCAT spécifiquement) au lieu DISTINCT, et l'autre cas est 'else null' (les agrégations ignorent généralement null). En ce qui concerne le problème de décalage horaire, vous devrez convertir vos chaînes de date en valeurs de date appropriées; alors vous pouvez utiliser les fonctions de date intégrées de MySQL. – Uueerdo
Voir: [Pourquoi devrais-je fournir un MCVE pour ce qui me semble être une requête SQL très simple?] (Https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve -pour-ce-qui-me-semble-à-être-un-très-simple-sql-requête) – Strawberry