Skip to main content
Announcements
SYSTEM MAINTENANCE: Thurs., Sept. 19, 1 AM ET, Platform will be unavailable for approx. 60 minutes.
cancel
Showing results for 
Search instead for 
Did you mean: 
ab92
Creator II
Creator II

Information sur clause where

Bonjour,

Pouvez vous svp m'aider a obtenir la définition de chacune de ces clauses svp :

   

WHERE YEAR(RTNDAT_0)>= $(V_NOMBRE_ANNEE);
WHERE YEAR(RTNDAT_0)>=YEAR(TODAY())-$(V_NOMBRE_ANNEE);

La première je la comprends mais la deuxième m'échappe ...

En vous remerciant d'avance,

Cdt.

A B

1 Solution

Accepted Solutions
marinadorcassio1
Partner - Creator
Partner - Creator

Axel,

Pour que la deuxième condition fonctionne (WHERE YEAR(RTNDAT_0)>=YEAR(TODAY())-$(V_NOMBRE_ANNEE)), il faut redéfinir ta variable $(V_NOMBRE_ANNEE) avec juste le nombre '3' en dur.

View solution in original post

11 Replies
ogautier62
Specialist II
Specialist II

Bonjour,

aurais tu des infos en plus sur le contexte d'utilisation stp ?

les deux defs ne semblent pas cohérentes : soit c'est une année, soit une différence

cdt

ab92
Creator II
Creator II
Author

Bonjour Olivier,

Le champ utilisé dans mon exemple est un champ date, en utilisant la première instruction :

WHERE YEAR(RTNDAT_0)>= $(V_NOMBRE_ANNEE);

Sur le champ RTNDAT_0 j'ai bien le nombre d'année que je souhaite en revanche

Lorsque j'utilise la deuixème :

WHERE YEAR(RTNDAT_0)>=YEAR(TODAY())-$(V_NOMBRE_ANNEE);

Je n'ai aucun filtre qui s'appliquer sur le champ alors je me dis peut être que quelqu'un pourra m'aider a comprendre ce que voulais réaliser la personne ?

marinadorcassio1
Partner - Creator
Partner - Creator

Bonjour Axel,

Une petite recherche sur Qlik Help t'aurait appris que la fonction Year() permet de sortir l'année d'une date.

Si ton champs RTNDAT_0 vaut la date du jour, alors Year(RTNDAT_0)  vaut 2018.

Je pense que c'est l'information qu'il te manquait pour comprendre ton problème.

Ta deuxième condition est davantage logique, si ton champs RTNDAT_0 est une date.


En espérant t'avoir aidé,

Regards,

Marina

ab92
Creator II
Creator II
Author

Bonjour Marina,

Je te remercie pour ton aide, cependant la fonction year est acquise, je pense que je n'ai pas assez développé le pb. Je souhaite comprendre cette syntaxe pourquoi réaliser cela :

)>=YEAR(TODAY())-$(V_NOMBRE_ANNEE); sup ou = année aujourd'hui - variable que j'ai donné je comprends pas a quoi peut bien servir la soustraction de today ?

marinadorcassio1
Partner - Creator
Partner - Creator

Je ne suis pas sure de comprendre le problème.

WHERE YEAR(RTNDAT_0) >=  ( YEAR(TODAY())-$(V_NOMBRE_ANNEE) )


Ex :

Si ta variable $(V_NOMBRE_ANNEE) vaut 5, alors ne seront gardées que les lignes où Year(RTNDAT_0) est supérieure ou égale à 2013 (2018 - 5)

Combien vaut ta variable $(V_NOMBRE_ANNEE) ?

ab92
Creator II
Creator II
Author

marina = year(today())-3;

Je ne comprends ca m'affiche toute les dates ..

marinadorcassio1
Partner - Creator
Partner - Creator

Alors il est là le problème.

Question de logique, personnellement je n'aurai pas appelé V_NOMBRE_ANNEE une variable qui vaut une année (ici 2018-3=2015) et non un nombre d'années.


C'est du coup la première condition qui devrait fonctionner

WHERE YEAR(RTNDAT_0)>= $(V_NOMBRE_ANNEE)

ab92
Creator II
Creator II
Author

Marina,

Comment faire pour que la deuxième variable fonctionne ?

Il est vrai que ma variable est mal adapté j'ai voulu allé vite ..

Merci pour ton aide,

A B

marinadorcassio1
Partner - Creator
Partner - Creator

Axel,

Pour que la deuxième condition fonctionne (WHERE YEAR(RTNDAT_0)>=YEAR(TODAY())-$(V_NOMBRE_ANNEE)), il faut redéfinir ta variable $(V_NOMBRE_ANNEE) avec juste le nombre '3' en dur.