Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
theotshirt
Contributor
Contributor

Calcul délai entre le passage de différents statuts de commande

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é : 

theotshirt_0-1674826295282.png

Merci beaucoup d'avance. 

2 Replies
brunobertels
Master
Master

Bonjour 

If(Numéro commande=peek(Numéro commande),Date commande-peek(Date commande),'') as [date_passage_in_delivery]

 

Dref278
Creator
Creator

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.

Pour avoir une bonne réponse, il faut poser la bonne question (Chat GPT, 2023)