Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
jmialoundama
Specialist
Specialist

Fonction "WeekStart"

Bonjour,

J'ai une application qui analyse des commandes dans un magasin.

Les commandes se regardent au jour de la semaine.

J'ai un champs "Jour" sous ce format  avec des dates sous ce format : 01/01/2018.

En fait je souhaiterai avoir les 52 semaines de l'année 2018. C'est à dire avoir la 1è re semaine de l'année 2018 jusqu'a la dernière semaine de l'année 2018.

J'ai regardé les fonctions "WeekStart " et WeekEnd" , j'ai réfélchis à écrire quelque chose dans ce genre au niveau du script :

Load *,

From Commande_magasin

Where Weekstart("Jour")>=1er jour de la semaine 2018  And WeekEnd("Jour")<=Dernier jour de la dernière semaine 2018.

Ce qui me bloque, c'est comment savoir quel est le premier jour de la semaine 2018 et quel est le jour de la dernière semaine 2018 ?

Merci d'avance

1 Solution

Accepted Solutions
ogautier62
Specialist II
Specialist II

si c'est pas ça c'est que j'ai mal compris alors

View solution in original post

13 Replies
YoussefBelloum
Champion
Champion

Bonjour,

que veux tu dire par : "Les commandes se regardent au jour de la semaine." ?


Pourquoi tu n'utilise simplement pas ton champ Date dans ton WHERE .

jmialoundama
Specialist
Specialist
Author

Désolé pour cette phrase , je me suis mal exprimé.

Justement je voudrais utiliser mon champs date mais dedans j'ai des dates de 2014,2015,2016,2017 et 2018.

Que veux tu dire par utiliser le champs date ?

En fait le 1er jour de la semaine de 2018 n'est pas toujours le 1er janvier

Ex : En 2016 , le 1er janvier était dans la semaine 52 de 2016.

En 2018, le 1er janvier est bien dans la semaine 1 de 2018.

(On voit donc que la première semaine de 2018 varie en fonction des années)

Ce que je voudrais simplement avoir ce sont les 52 semaines de l'année

YoussefBelloum
Champion
Champion

si tu cherche seulement limiter les données et avoir seulement une année, exemple 2018, tu peux essayer ceci:

TABLE:

.

.

FROM

WHERE Year(CHAMP_DATE)=2018;

si ca ne marche pas, il faut que tu évalue correctement ton champ date, comme ceci:

TABLE:

.

.

FROM

WHERE Year(Date#(CHAMP_DATE,'DD/MM/YYYY'))=2018;

ogautier62
Specialist II
Specialist II

Bonjour,

regarde la fonction weekyear()

weekyear(dateCommande) = 2018 devrait convenir

cdt

flochi75
Creator III
Creator III

Bonjour Juliana,

je pense que la fonction week() devrait t'aider.

en effet, la 1ere semaine de l'année est celle qui contient le 4 janvier...

donc essaie week(TaDate) as N°Semaine...

Florent

christophebrault
Specialist
Specialist

Bonjour,

Si tu cherches à filtrer seulement les données supérieures au premier jour de la semaine N°1 de 2018 alors ce Where fonctionne :

Where Date >= WeekStart(MakeWeekDate(2018,1));

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
jmialoundama
Specialist
Specialist
Author

Ok je vais essayer également de faire le code que vous avez envoyé dans ma clause where.

Du coup avoir le dernier jour de la dernière semaine de 2019 , il faudrait avoir ce code :

Where Date >= WeekEnd(MakeWeekDate(2018,52)) ?


Du coup ça donnerai ce code là ? :

Load *,

From Commande_magasin

Where ("Jour_commande")>=WeekStart(MakeWeekDate(2018,1)) And "Jour_Commande" <=WeekEnd(MakeWeekDate(2018,52))

ogautier62
Specialist II
Specialist II

et weekyear("jour_commande")=2018 ne marche pas ?

ogautier62
Specialist II
Specialist II

si c'est pas ça c'est que j'ai mal compris alors