Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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;
Bonjour,
Merci pour cette réponse, mais j'ai toujours le message d'erreur:
Peux-tu vérifier que toutes tes tables existent dans ta base Oracle ?
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?
Si tu fais un exit script avant de créer ta table 2, est-ce que tu vois la table Tdiag1 ?
Oui, la table apparaît bien
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;
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!
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;
Super, ça marche!
Merci beaucoup!!