Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
caro51100
Contributor II
Contributor II

Filtrer sur date plus récente

Bonjour à tous,

Je suis confrontée à une problématique car je dispose d'une base de données où une fiche patient (patient_id) peut avoir plusieurs versions (version) comme vous le constaterez dans la pièce jointe du fait qu'un utilisateur peut rééditer une fois la fiche patient afin de compléter certaines données qu'il aurait omis d'indiquer. Or, je souhaite réaliser mes analyses uniquement sur la dernière version de la fiche patient. J'ai essayé d'utiliser : version = {$(=max(version)} dans mon expression mais sans résultat car plus rien ne s'affiche dans le tableau. Comment pourrais-je procéder ?

Merci par avance de votre retour.

1 Solution

Accepted Solutions
Seyko
Partner - Creator
Partner - Creator

Bonjour,

Deux possibilités: 

  1.  En visualisation : En chargeant toutes les données et en utilisant dans un objet type table l'expression suivante : 

 

 

=Timestamp( Max(TOTAL <patient_id> version) )​

 

 

  • Depuis le script: Ne charger que les données associées aux fiches les plus récentes:

 

 

Caracteristiques:
LOAD DISTINCT
[nom_smur],
[patient_id],
[profil_type],
[Fiche SMUR]
 FROM [lib://Downloads/dernière version base de données.xls]
(biff, embedded labels, table is Sheet1$);


Version_fiche:
LOAD
[patient_id],
Timestamp(Max([version]))  AS Version_recente
 FROM [lib://Downloads/dernière version base de données.xls]
(biff, embedded labels, table is Sheet1$)
	GROUP BY [patient_id]
;
​

 

 

cordialement.

Excuse my english, i'm french!

View solution in original post

7 Replies
caro51100
Contributor II
Contributor II
Author

J'ai oublié de vous joindre la pièce jointe pour que vous puissiez mieux comprendre ma problématique.

brunobertels
Master
Master

Bonjour 

Si version est une dimension 

if(version=max(version),version)

 

En mesure dans un set analysis si l'expression version = {$(=max(version)} ne marche pas alors c'est peut être un format. 

En effet je vois que la date est un timestamp 

 

caro51100
Contributor II
Contributor II
Author

Effectivement, le format est un timestamp mais même en mettant timestamp(max(version)) cela ne fonctionne pas non plus. Un informaticien m'a préconisé d'utiliser Firstvalue dans le script dans un LOAD avec Order by et Group by sans plus d'explications par manque de temps mais je n'ai pas d'idée de comment rédiger ce programme dans le script. Auriez-vous une idée ?

brunobertels
Master
Master

Bonjour 

Déja j'ai reamrque dans ton screen shot que tu as deux format de time stamp 

Lorsqu'il y a deux date pour un mpeme patient le format est 

2019-07-22 09:55:04 et il est justifié à droite dans la colonne ( considéré comme un nombre) 

Alors que les autres ont un format 2019-04-26_09:40:38 ( il y a un underscore entre la date et l'heure ; et il est justifié à gauche dans la colonne : considéré comme du texte) 

Si tu as bien ces deux formats il faut les formater pour en avoir qu'un : 

dual(

timestamp(timestamp(version,'YYYY-MM-DD_hh:mm:ss'),''YYYY-MM-DD hh:mm:ss'),

timestamp(timestamp(version,'YYYY-MM-DD hh:mm:ss'),''YYYY-MM-DD hh:mm:ss')) as version

Si tu peux uploader un fichier exemple avec quelques donnée en .xls je regarderai 

 

caro51100
Contributor II
Contributor II
Author

Bonjour,

Merci pour votre retour. Effectivement, comme nous sommes en pré-production de la base de données, les formats ne sont pas uniformisés mais nous n'aurons pas ce problème en production. Je vous mets en pièce jointe quelques lignes de la base dans un .xls . L'idée serait tout simplement de garder les lignes où les fiches patient n'ont qu'une version ainsi que les lignes de la deuxième version des fiches patients, les premières versions étant incomplètes, cela ne nous intéresse pas de les analyser. Merci par avance de votre contribution, cela nous serait d'une grande aide.

Seyko
Partner - Creator
Partner - Creator

Bonjour,

Deux possibilités: 

  1.  En visualisation : En chargeant toutes les données et en utilisant dans un objet type table l'expression suivante : 

 

 

=Timestamp( Max(TOTAL <patient_id> version) )​

 

 

  • Depuis le script: Ne charger que les données associées aux fiches les plus récentes:

 

 

Caracteristiques:
LOAD DISTINCT
[nom_smur],
[patient_id],
[profil_type],
[Fiche SMUR]
 FROM [lib://Downloads/dernière version base de données.xls]
(biff, embedded labels, table is Sheet1$);


Version_fiche:
LOAD
[patient_id],
Timestamp(Max([version]))  AS Version_recente
 FROM [lib://Downloads/dernière version base de données.xls]
(biff, embedded labels, table is Sheet1$)
	GROUP BY [patient_id]
;
​

 

 

cordialement.

Excuse my english, i'm french!
caro51100
Contributor II
Contributor II
Author

Merci, ça fonctionne bien comme ceci !

Cordialement.