Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
j'ai deux champs date que j'aimerai concaténer:
-un champ avec la date (ex: 16/01/2017 00:00:00)
-un champ date qui est en fait l'heure (ex: 01/01/2017 14:43:05)
J'aimerai concaténer les deux pour pouvoir faire des calculs dessus par la suite, notamment prendre le min.
Pour l'instant, j'ai écrit:
(concat(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY'),concat(' ',to_char(CORTEXTE.MODALITE.HD,'HH24:MI'))))
Mais quand j'en prends le min(), il me sélectionne selon le premier chiffre de la date et non pas selon la date en elle-même. Cette variable a l'air d'être du texte..
Si vous avez une idée.
Merci!
Nathalie
tu n’as pas mis le min sur ta 2eme expression :
SELECT
CORTEXTE.PATIENTS.P4 as "ClePatient",
CORTEXTE.PATIENTS.IPP_ADMIN,
CORTEXTE.PATIENTS.NOMPRENOM,
/*CORTEXTE.MODALITE.DD,
CORTEXTE.MODALITE.HD,
to_char(CORTEXTE.MODALITE.HD,'HH24:MI:SS') as HeureDD,*/
Min(TO_DATE(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY')||' '||to_char(CORTEXTE.MODALITE.HD,'HH24:MI'), 'DD/MM/YYYY HH24:MI')) as "MinDD",
Min(to_char(CORTEXTE.MODALITE.DD,'YYYY')) as "MinAnDD"
FROM
CORTEXTE.MODALITE LEFT JOIN
CORTEXTE.PATIENTS ON CORTEXTE.MODALITE.E4 = CORTEXTE.PATIENTS.P4
GROUP BY
CORTEXTE.PATIENTS.P4,
CORTEXTE.PATIENTS.IPP_ADMIN,
CORTEXTE.PATIENTS.NOMPRENOM;
Bonjour
Essaye d'inclure ta mesure dans avec Timestamp() ou Timestamp#()
timestamp(
(concat(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY'),concat(' ',to_char(CORTEXTE.MODALITE.HD,'HH24:MI'))))
)
ou
Timestamp#(
(concat(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY'),concat(' ',to_char(CORTEXTE.MODALITE.HD,'HH24:MI'))))
)
puis retester ton min()
si tes champs sont déjà des dates (QlikView), tu peux simplement utiliser ceci :
TimeFormat(Floor(CORTEXTE.MODALITE.DD) + Frac(CORTEXTE.MODALITE.HD))
Si c’est du texte :
TimeFormat(TimeFormat#(Left(CORTEXTE.MODALITE.DD, 11) & Right(CORTEXTE.MODALITE.HD, 8), 'DD/MM/YYYY hh:mm:ss'))
Bonsoir,
Merci pour vos réponses, mais j'ai toujours un message d'erreur.
Je me demande si le problème ne vient pas plutôt du fait que j'ai écris un script en SQL:
T1:
SELECT
CORTEXTE.PATIENTS.P4 as "ClePatient",
CORTEXTE.PATIENTS.IPP_ADMIN,
CORTEXTE.PATIENTS.NOMPRENOM,
CORTEXTE.MODALITE.DD,
CORTEXTE.MODALITE.HD,
to_char(CORTEXTE.MODALITE.HD,'HH24:MI:SS') as HeureDD,
TimeFormat(TimeFormat#(Left(CORTEXTE.MODALITE.DD, 11) & Right(CORTEXTE.MODALITE.HD, 8), 'DD/MM/YYYY hh:mm:ss')) as "MinDD",
/*Date(CORTEXTE.MODALITE.HD,'hh:mm') as MinDD,*/
(to_char(CORTEXTE.MODALITE.DD,'YYYY')) as "MinAnDD"
FROM
CORTEXTE.MODALITE LEFT JOIN
CORTEXTE.PATIENTS ON CORTEXTE.MODALITE.E4 = CORTEXTE.PATIENTS.P4;
/*GROUP BY
CORTEXTE.PATIENTS.P4,
CORTEXTE.PATIENTS.IPP_ADMIN,
CORTEXTE.PATIENTS.NOMPRENOM;*/
Si tu nous dit pas tout 😉
Ce sont des expressions Qlik que je t’ai donné, essaye comme ceci :
T1:
LOAD
*,
TimeFormat(TimeFormat#(Left(CORTEXTE.MODALITE.DD, 11) & Right(CORTEXTE.MODALITE.HD, 8), 'DD/MM/YYYY hh:mm:ss')) As MinDD;
SELECT
CORTEXTE.PATIENTS.P4 as "ClePatient",
CORTEXTE.PATIENTS.IPP_ADMIN,
CORTEXTE.PATIENTS.NOMPRENOM,
CORTEXTE.MODALITE.DD,
CORTEXTE.MODALITE.HD,
to_char(CORTEXTE.MODALITE.HD,'HH24:MI:SS') as HeureDD,
/*TimeFormat(TimeFormat#(Left(CORTEXTE.MODALITE.DD, 11) & Right(CORTEXTE.MODALITE.HD, 8), 'DD/MM/YYYY hh:mm:ss')) as "MinDD",
Date(CORTEXTE.MODALITE.HD,'hh:mm') as MinDD,*/
(to_char(CORTEXTE.MODALITE.DD,'YYYY')) as "MinAnDD"
FROM
CORTEXTE.MODALITE LEFT JOIN
CORTEXTE.PATIENTS ON CORTEXTE.MODALITE.E4 = CORTEXTE.PATIENTS.P4;
/*GROUP BY
CORTEXTE.PATIENTS.P4,
CORTEXTE.PATIENTS.IPP_ADMIN,
CORTEXTE.PATIENTS.NOMPRENOM;*/
Bonsoir,
J'ai trouvé l'expression pour concaténer la date et l'heure.
Mais après quand je prends le min, le code ne marche plus... c'est pas encore gagné!
SELECT
CORTEXTE.PATIENTS.P4 as "ClePatient",
CORTEXTE.PATIENTS.IPP_ADMIN,
CORTEXTE.PATIENTS.NOMPRENOM,
/*CORTEXTE.MODALITE.DD,
CORTEXTE.MODALITE.HD,
to_char(CORTEXTE.MODALITE.HD,'HH24:MI:SS') as HeureDD,*/
Min(TO_DATE(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY')||' '||to_char(CORTEXTE.MODALITE.HD,'HH24:MI'), 'DD/MM/YYYY HH24:MI')) as "MinDD",
(to_char(CORTEXTE.MODALITE.DD,'YYYY')) as "MinAnDD"
FROM
CORTEXTE.MODALITE LEFT JOIN
CORTEXTE.PATIENTS ON CORTEXTE.MODALITE.E4 = CORTEXTE.PATIENTS.P4
GROUP BY
CORTEXTE.PATIENTS.P4,
CORTEXTE.PATIENTS.IPP_ADMIN,
CORTEXTE.PATIENTS.NOMPRENOM;
tu n’as pas mis le min sur ta 2eme expression :
SELECT
CORTEXTE.PATIENTS.P4 as "ClePatient",
CORTEXTE.PATIENTS.IPP_ADMIN,
CORTEXTE.PATIENTS.NOMPRENOM,
/*CORTEXTE.MODALITE.DD,
CORTEXTE.MODALITE.HD,
to_char(CORTEXTE.MODALITE.HD,'HH24:MI:SS') as HeureDD,*/
Min(TO_DATE(to_char(CORTEXTE.MODALITE.DD,'DD/MM/YYYY')||' '||to_char(CORTEXTE.MODALITE.HD,'HH24:MI'), 'DD/MM/YYYY HH24:MI')) as "MinDD",
Min(to_char(CORTEXTE.MODALITE.DD,'YYYY')) as "MinAnDD"
FROM
CORTEXTE.MODALITE LEFT JOIN
CORTEXTE.PATIENTS ON CORTEXTE.MODALITE.E4 = CORTEXTE.PATIENTS.P4
GROUP BY
CORTEXTE.PATIENTS.P4,
CORTEXTE.PATIENTS.IPP_ADMIN,
CORTEXTE.PATIENTS.NOMPRENOM;
Mais oui, c'est vrai, et là ça marche!
🙂
Merci!