Je dois créer une requête MySQL pour un rapport.MySQL Reporting - Historique des commandes
J'ai une table history
qui conserve l'enregistrement des changements d'état de l'ordre d'un produit. J'ai ces statuts pour le cycle de vie d'une commande (le flux d'une commande): nouveau, confirmé, traitement, expédié, livré, annulé, retourné. Une commande ne suit pas nécessairement ce flux d'état, par exemple: Une nouvelle commande peut être annulée immédiatement, ou elle peut être annulée pendant le traitement. Cela rend les rapports précis plus complexes.
Maintenant, je veux faire un rapport de chaîne d'approvisionnement des commandes qui ont été confirmées, traitées, expédiées, puis livrés. Mais ce rapport devrait exclure les commandes qui ont été annulées à tout moment ou retournées.
Considérons cet exemple:
Un ordre (id: 34) a été placé par un client. Statut initial: Nouveau. Confirmé par un agent, statut défini sur Confirmé. Le gestionnaire de la chaîne d'approvisionnement vérifie la disponibilité, les changements de statut au traitement, puis expédie et puis livré.
Un autre ordre (id: 55) vient, Nouveau, confirmé, traitement mais annulé. history
ressemble:
id order_id status
111 34 new
112 34 confirmed
113 55 new
114 55 confirmed
115 55 processing
116 34 processing
117 55 cancelled
118 34 shipped
119 34 delivered
Comment puis-je faire une requête de rapport pour obtenir uniquement les commandes qui ont été
- Confirmé, transformés, expédiées et livrées.
- Confirmé, traité, annulé.
- a confirmé, annulé
- et ainsi de suite ...
Comment puis-je écrire une requête pour obtenir ce genre de rapports?
C'est génial. Et si je mets aussi du temps dans la clause "WHERE". Comme 't3.date_added> t2.date_added et t2.date_added> t1.date_added'. En d'autres termes, un ordre était tout d'abord nouveau, puis défini sur processus, puis sur livré. De cette façon, je serai capable de trier le flux d'état aussi bien ... Pas vrai? –
yahh vous pouvez le faire. et si la réponse est utile, n'oubliez pas de l'accepter. Merci. –