Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Nous avons des données à propos de commandes : date de création, changement de statut, date du changement de statut, transporteur.
Nous aimerions calculer le délai entre certains statuts afin de savoir par exemple "le pourcentage de commandes produites en 3 jours".
Nous avons essayé le code ci-dessous pour créer des dates associées à chaque statut, mais cela ne fonctionne pas :
LOAD
numéro commande,
status,
date de passage status,
date(floor(date de passage status)) as date_passage_in_delivery
where status='in_delivery';
Comment peut-on faire ?
Merci beaucoup,
Ici les données que nous avons :
Date commande | Numéro commande | Status | date de passage status | Transporteur |
22/01/2023 | Commande 1 | created | 22/01/2023 | 1 |
22/01/2023 | Commande 1 | in_production | 22/01/2023 | 1 |
22/01/2023 | Commande 1 | in_delivery | 22/01/2023 | 1 |
22/01/2023 | Commande 1 | delivered | 23/01/2023 | 1 |
22/01/2023 | Commande 2 | created | 22/01/2023 | 2 |
22/01/2023 | Commande 2 | in_production | 22/01/2023 | 2 |
22/01/2023 | Commande 3 | created | 22/01/2023 | 1 |
23/01/2023 | Commande 4 | created | 23/01/2023 | 1 |
23/01/2023 | Commande 4 | in_production | 23/01/2023 | 1 |
23/01/2023 | Commande 4 | in_delivery | 24/01/2023 | 1 |
23/01/2023 | Commande 4 | delivered | 26/01/2023 | 1 |
23/01/2023 | Commande 5 | created | 23/01/2023 | 2 |
23/01/2023 | Commande 5 | in_production | 25/01/2023 | 2 |
23/01/2023 | Commande 5 | in_delivery | 25/01/2023 | 2 |
22/01/2023 | Commande 6 | created | 22/01/2023 | 1 |
22/01/2023 | Commande 6 | in_production | 25/01/2023 | 1 |
22/01/2023 | Commande 6 | in_delivery | 26/01/2023 | 1 |
Ici le résultat souhaité :
Merci beaucoup d'avance.
Bonjour
If(Numéro commande=peek(Numéro commande),Date commande-peek(Date commande),'') as [date_passage_in_delivery]
Bonjour,
Votre idée de base est bonne, vous pouvez continuer dans ce sens si le nombre et le libellé des statuts évolue peu.
Charger une table de mapping pour chaque (ci-dessous exemple pour le statut created):
Map_Date_Created :
Load
"Numéro de commande" as Map_Created_IN,
"date de passage status" as Map_Created_OUT
where status='created'
from <table>;
Une fois l'ensemble des mappings créés, vous pouvez les charger à plat dans une table :
T_DateCommande :
Load
"Numéro de commande"
ApplyMap('Map_Date_Created',"Numéro de commande") as [Date Création],
ApplyMap('Map_Date_in_prod',"Numéro de commande") as [Date en Production],
ApplyMap('Map_Date_Delivered',"Numéro de commande") as [Date Livraison]
....<Idem pour les autres dates>....
from Table;
Une fois cette table créée, il vous est facile de calculer des délais entre les dates d'une même commande, soit dans les feuilles, soit en ajoutant un load supplémentaire pour faire les calculs.
PS : La fonction networkdays() permet d'effectuer le calcul de délai sur les jours ouvrés.