Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
mahieuphilippe
Creator
Creator

Filtre des dates jusqu'au aujourd'hui

Bonjour à tous

Je bute pour un problème de filtre d'une date, pourtant avec tous les exemples je n'arrive pas, cela m’énerve car c'est vraiment tout simple

Je voudrai juste remplacer mon filtre sur le champs 'End_date' par simplement plus petit que aujourd'hui (fonction today),

J'en ai essayer des formules  ...

LOAD "End_date",

"Jobstatus#",

"Job_type",

    "WO_Key";

SQL SELECT "End_date",

    "WO_Key",

    "Job_type",

    "Jobstatus#"

FROM PUB."Work_order"

where "End_date"<{d '2017/10/03'} and ( "Jobstatus#" = '3' or "Jobstatus#" = '5'  or "Jobstatus#" = '6' or "Jobstatus#" = '8');

une âme charitable lol ....

1 Solution

Accepted Solutions
martinien
Partner - Contributor III
Partner - Contributor III

Bonjour Philippe,

Attention, dans votre exemple, l'instruction Where ne fait pas partie du code exécuté par Qlikview mais de la requête  SQL envoyée à la source de donnée; Dans cette partie du script, les fonctions de Qlikview ne sont donc pas reconnues. Dans les instructions SQL SELECT il faut utiliser les fonctions SQL (en fonction de la source utilisée).

Une autre solution est d'enregistrer la date du jour  dans une variable, puis d'utiliser la variable dans le script, à la place de la date en dur:

Let vToday = Date(Today(),'YYYY/MM/DD');

LOAD "End_date",

"Jobstatus#",

"Job_type",

    "WO_Key";

SQL SELECT "End_date",

    "WO_Key",

    "Job_type",

    "Jobstatus#"

FROM PUB."Work_order"

where "End_date"<{d '$(vToday)'} and ( "Jobstatus#" = '3' or "Jobstatus#" = '5'  or "Jobstatus#" = '6' or "Jobstatus#" = '8');

Martin

View solution in original post

7 Replies
martinien
Partner - Contributor III
Partner - Contributor III

Bonjour Philippe,

Attention, dans votre exemple, l'instruction Where ne fait pas partie du code exécuté par Qlikview mais de la requête  SQL envoyée à la source de donnée; Dans cette partie du script, les fonctions de Qlikview ne sont donc pas reconnues. Dans les instructions SQL SELECT il faut utiliser les fonctions SQL (en fonction de la source utilisée).

Une autre solution est d'enregistrer la date du jour  dans une variable, puis d'utiliser la variable dans le script, à la place de la date en dur:

Let vToday = Date(Today(),'YYYY/MM/DD');

LOAD "End_date",

"Jobstatus#",

"Job_type",

    "WO_Key";

SQL SELECT "End_date",

    "WO_Key",

    "Job_type",

    "Jobstatus#"

FROM PUB."Work_order"

where "End_date"<{d '$(vToday)'} and ( "Jobstatus#" = '3' or "Jobstatus#" = '5'  or "Jobstatus#" = '6' or "Jobstatus#" = '8');

Martin

sfatoux72
Partner - Specialist
Partner - Specialist

‌dans ce cas, c'est du pur SQL (ne pas utiliser de fonction QlikView dans une requête SQL)

essaye avec la clause quête suivante :

WHERE "End_date" = GetDate() AND "Jobstatus#" in ('3','5','6','8')

mahieuphilippe
Creator
Creator
Author

Bonjour Martin, merci pour votre réponse, j'ai du effectuer la manœuvre mais  il faut aussi changer l’interprétation de la date car la requête n'accepte que le format  YYYYMMDD et non l'inverse.

001.JPG

SET DateFormat='YYYY/MM/DD'

let vToday = today();

mahieuphilippe
Creator
Creator
Author

Bonjour Sébastien merci pour ta réponse, en utilisant ta formule j'ai une erreur mais faut-il conpleter ta formule au niveau du GetDate (????)

WHERE "End_date" = GetDate() AND "Jobstatus#" in ('3','5','6','8')

sfatoux72
Partner - Specialist
Partner - Specialist

‌Non, GetDate() est une fonction de base de donnée, mais elle peut avoir d'autre nom sur certaines base de données.

Quelle base de données utilises-tu?

mahieuphilippe
Creator
Creator
Author

Bonjour Sébastien, voici

  • Database type –   MSSQL
mahieuphilippe
Creator
Creator
Author

Je reviens vers toi, étant donné que j'ai eu une autre solution, ne te tracasse pas lol,