Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour.
Dans mon script, j'utilise la fonction NetWorkDays afin de calculer un délai de jours ouvrés.
Étrangement, quand la date de début est égale à la date de fin, le délai calculé et parfois de 0 et parfois de 1. J'aimerai qu'il soit à 0 dans ces cas là. Avez-cous une idée de la raison de cette erreur ?
Voici mon script:
LOAD
*,
Date(Date#(DATECREATION, 'YYYYMMDD'), 'DD/MM/YYYY') as [Date de création],
Date(Date#(DATETRT, 'YYYYMMDD'), 'DD/MM/YYYY') as [Date de traitement], // Date à laquelle le traitement a eu lieu.
NetWorkDays(DATECREATION, DATETRT) as [Délai ouvré]; // Délai en jours ouvrés
Cordialement.
Pas mieux. ![]()
Bertrand,
La fonction sert à calculer le nombre de jour ouvrés. Le 28/02/2017 et le 01/03/2017 sont 2 jours ouvrés. Il est donc normal que Qlikview te renvoie 2. Idem entre le 01/03/2017 et le 02/03/2017.
Si pour ces intervalles tu veux obtenir 1 alors il te suffit de faire ta fonction NetWorkDays(...)-1.
Ce qui est plus étonnant, c'est que pour certaines dates qui sont égales, Qlikview te renvoie 0 alors qu'il renvoie bien 1 pour les autres... Ceci dit, cela ne devrait pas te déranger si tu fait en sorte de ne pas avoir de valeur négative...
Kevin
Bertrand,
J'ai regardé de plus près tes données en Avril.
J'ai l'impression qu'il considère que les jours non ouvrés sont le Dimanche et Lundi.
Cela signifie qu'il y a donc un problème dans tes paramètres.
Je pense notamment qu'il faut que tu passes ton FirstWeekDay à 1 au lieu de 0.
SET FirstWeekDay=1;
Ensuite, si quand c'est le même jour, tu veux 0 alors fait bien -1 après ton NetWorkDays :
=NetWorkDays(DATECREATION, DATETRT)-1
Kevin
Merci beaucoup Kevin.
Ceci marche parfaitement avec SET FirstWeekDay=1;
| if (NetWorkDays(Date(Date#(DATECREATION, 'YYYYMMDD'), 'DD/MM/YYYY'), Date(Date#(DATETRT, 'YYYYMMDD'), 'DD/MM/YYYY'))-1<0, | ||||
| 0, | ||||
| NetWorkDays(Date(Date#(DATECREATION, 'YYYYMMDD'), 'DD/MM/YYYY'), Date(Date#(DATETRT, 'YYYYMMDD'), 'DD/MM/YYYY'))-1) | as [Délai ouvré]; |