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

valeur selon dernière date

Bonjour,

Je cherche à récupérer le dernier diagnostic posé pour chaque patient.

Pour cela, j'arrive à récupérer la date du dernier diagnostic, mais pas le diagnostic correspondant.

Avec cette formule, j'ai le premier diagnostic posé..

  =FirstSortedValue(CodeDiag, aggr(max(DateDiag),IPP_ADMIN))

(Code diag: code du diagnostic

Date diag= date du diagnostic

IPP_ADMIN=identifiant patient)

J'ai vu que l'on pouvait avoir l'inverse de "FirstsortedValue en mettant un "-", mais dans ce cas, j'ai des cellules vides...

Est-ce que vous auriez une idée?

Merci!

Nathalie

23 Replies
lcloatre
Partner - Creator III
Partner - Creator III

Nathalie,


Je te conseille d'ajouter "Noconcatenate" avant ton SELECT.


TDiag1:

SELECT

PATIENTS.IPP_ADMIN,

Max(ORD_DIA.D) AS MaxDeD,

Max(ORD_DIA.P12) AS MaxDeP12

FROM

PATIENTS LEFT JOIN

ORD_DIA ON PATIENTS.P4 = ORD_DIA.E4

GROUP BY PATIENTS.IPP_ADMIN;

T2Diag:

Noconcatenate

SELECT

  TDiag1.IPP_ADMIN,

  TDiag1.MaxDeD,

  REP_DIA.CODE,

  REP_DIA.LIB_250

FROM

(TDiag1 LEFT JOIN DIAGNOSTICS ON TDiag1.MaxDeP12 = DIAGNOSTICS.E12)

LEFT JOIN REP_DIA ON DIAGNOSTICS.E14 = REP_DIA.P14

GROUP BY

TDiag1.IPP_ADMIN, TDiag1.MaxDeD, REP_DIA.CODE, REP_DIA.LIB_250;

nathroche
Contributor III
Contributor III
Author

Bonjour,

Merci pour cette réponse, mais j'ai toujours le message d'erreur:

Capture.JPG

lcloatre
Partner - Creator III
Partner - Creator III

Peux-tu vérifier que toutes tes tables existent dans ta base Oracle ?

nathroche
Contributor III
Contributor III
Author

Yes, toutes mes tables existent.

J'ai l'impression que c'est la tablea TDiag1, créé juste avant mais qu'il ne prend pas en compte, non?

lcloatre
Partner - Creator III
Partner - Creator III

Si tu fais un exit script avant de créer ta table 2, est-ce que tu vois la table Tdiag1 ?

nathroche
Contributor III
Contributor III
Author

Oui, la table apparaît bien

lcloatre
Partner - Creator III
Partner - Creator III

Je viens de comprendre. Tu mélanges des tables de ta base ORACLE et la table que tu as charé dans QlikView.

Essaies ceci :

TDiag1:

SELECT

PATIENTS.IPP_ADMIN,

TDiag1.MaxDeP12 as MaxDeP12,

Max(ORD_DIA.D) AS MaxDeD,

Max(ORD_DIA.P12) AS MaxDeP12

FROM

PATIENTS LEFT JOIN

ORD_DIA ON PATIENTS.P4 = ORD_DIA.E4

GROUP BY PATIENTS.IPP_ADMIN, TDiag1.MaxDeP12;

T2Diag:

SELECT

   DIAGNOSTICS.E12 as MaxDeP12,

  REP_DIA.CODE,

  REP_DIA.LIB_250

FROM DIAGNOSTICS, REP_DIA

WHERE DIAGNOSTICS.E14 = REP_DIA.P14;


TDiag3:

Noconcatenate

select *

resident Tdiag1;


Left Join

LOAD *

resident T2Diag;

nathroche
Contributor III
Contributor III
Author

J'ai essayé:

Il me sort une erreur sur la Table TDiag1: il ne reconnait pas "TDiag1.MaxDeP12"

et une autre erreur sur TDiag3, il cherche le "FROM"

...

Merci pour ton aide!

lcloatre
Partner - Creator III
Partner - Creator III

Une version corrigée :


TDiag1:

SELECT

PATIENTS.IPP_ADMIN,

Max(ORD_DIA.D) AS MaxDeD,

Max(ORD_DIA.P12) AS MaxDeP12

FROM

PATIENTS LEFT JOIN

ORD_DIA ON PATIENTS.P4 = ORD_DIA.E4

GROUP BY PATIENTS.IPP_ADMIN;

T2Diag:

SELECT

   DIAGNOSTICS.E12 as MaxDeP12,

  REP_DIA.CODE,

  REP_DIA.LIB_250

FROM DIAGNOSTICS, REP_DIA

WHERE DIAGNOSTICS.E14 = REP_DIA.P14;


TDiag3:

Noconcatenate

LOAD *

resident TDiag1;


Left Join

LOAD *

resident T2Diag;

nathroche
Contributor III
Contributor III
Author

Super, ça marche!

Merci beaucoup!!