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

compter les nombre de jour entre deux dates dans une colonne

Bonjour,

J'aimerai compter le nombre de date d'une colonne entre aujourd'hui et aujourd'hui - 10 jours

la colonne ressemble à cela

Merci

Aurélien NANI

5 Replies
flochi75
Creator III
Creator III

Bonjour Aurélien,

une base de travail (testé dans Qlikview, mais reproductible dans Sense)  :

en script :

changer si ce n'est déjà fait le format date en YYYY-MM-DD, idem pour ke TimestampFormat

puis créer une table calendrier :

CALENDRIER:

load date(IterNo() +('2011-01-01')-1) as CAL_DATE ,

  month(IterNo() + ('2011-01-01')-1) as CAL_MOIS,

  Year(IterNo() + ('2011-01-01')-1)as CAL_ANNEE,

  day(IterNo() + ('2011-01-01')-1) as CAL_JOURS,

  date(IterNo() + ('2011-01-01')-1) as CLE_DATE

  AutoGenerate (1)

while 

  IterNo() + ('2011-01-01')-1 <= num(Today())

  ;

Charger ta tabkle contenant ton champ date, dupliquer ce champ pour en faire une clé :

MaTAble:

load *inline [

DATE, CLE_DATE

2016-09-14,2016-09-14

2016-09-13,2016-09-13

2016-09-12,2016-09-12

2016-09-09,2016-09-09

2016-09-08,2016-09-08

2016-09-07,2016-09-07

2016-09-06,2016-09-06

2016-09-05,2016-09-05

2016-09-04,2016-09-04

2016-09-03,2016-09-03

2016-09-02,2016-09-02

2016-09-01,2016-09-01

2016-08-28,2016-08-28

]

dans l'appli, tu mets le champ CLE_DATE en filtres,

si tu sélectionnes le 10 derniers jours, si tu crées un simple count(distinct DATE), tu compteras le nombre de DATE existantes dans ta table  dans la période des 10 jours sélectionnés...

reste à trouver le moyen de créé un champ qui défini une periode des 10 jours glissants à partir d'aujourd'hui et de l'insérer dans la condition de calcul...

Bon Courage...

Florent

Capture.PNG

Not applicable
Author

J'aimerai le faire sans pouvoir séléctionner j'aimerai le faire en tant que measure,

Comme ceci :

Count( {< cDate = {">=(Date(Today())-10)"} >}cDate)

Mais ça ne marche pas 😕

brunobertels
Master
Master

Bonjour

Peut être quelque chose comme çà , en poursuivant ton idée

on déclare deux variables dans l'éditeur de variable :

vEndDate = today();

vStartDate = (today() -10);

puis on tente cette formule

count({<CLE_DATE={">=$(vStartDate) <=$(vEndDate)"}>}distinct DATE)

Bruno

Not applicable
Author

Merci J'ai trouvé une autre solution le calculé directement dans le data load editor.

Dans une nouvelle requète SQL

WHERE

          `wst`.`xxx`.`Install_Date` >= date_format(current_date - INTERVAL 200 DAY,'%Y-%m-%d')

Aurélien

brunobertels
Master
Master

Bonjour

En poursuivant l'idée de Florent voici ce que çà donne :

Reprendre le script de Florent et ou l'adapter a tes données il te faudra un champs date et un calendrier

ton champs Date a ce format : 'YYYY-MM-DD'

donc il faudra dans le MAINSCRIPT mettre ce format :

SET DateFormat='YYYY-MM-DD';

puis en mesure une de ces deux formules , les deux fonctionnent :

count({<DATE={'>=$(=max(CAL_DATE)-9) <=$(=max(CAL_DATE))'}>}distinct DATE)

count({<DATE={'>=$(=date(Today()-9))<=$(=Today())'}>} DATE )

Bruno