Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/03/2011, 17h10   #1
Membre confirmé
 
Avatar de PAYASS59
 
Homme
Inscription : février 2005
Messages : 735
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : février 2005
Messages : 735
Points : 291
Points : 291
Par défaut Gestion du CASE dans talend

Bonjour,

Je cherche via talend à faire sur un champ :
Code :
1
2
3
4
5
6
 
CASE
   	 WHEN  to_char(cpmdatfin,'DD-MM-YYYY') = '31-12-3000'
   	 THEN '31-12-'||to_char(sysdate,'YYYY')
   	 ELSE  '31-12-'||to_char(cpmdatfin,'YYYY')
END
Mon champ cpmdatfin dans talend est de type : "dd-MM-yyyy"

Je maitrise moyennement talend et encore moins les fonctions sur les dates.

merci de votre aide
__________________
Je préfère ma soif d'apprendre, à leurs certitudes de savoir....
PAYASS59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 09h51   #2
Rédacteur/Modérateur
 
Avatar de jsd03
 
Jean-Sébastien DARGES
Consultant décisionnel
Inscription : août 2008
Messages : 983
Détails du profil
Informations personnelles :
Nom : Jean-Sébastien DARGES
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Consultant décisionnel

Informations forums :
Inscription : août 2008
Messages : 983
Points : 1 845
Points : 1 845
Bonjour,

Premièrement, tu ne peux pas faire de case when... sur des String avec Talend.

Deuxièmement, tu veux appliquer cela dans un champ d'un tMap ? Si oui fait comme ceci :

Code :
row1.cpmdatfin !=NULL ? (TalendDate.formatDate("dd-MM-yyyy", row1.cpmdatfin).equals("31-12-3000") ? ("31-12-").concat(TalendDate.getDate("yyyy")) : ("31-12-").concat(TalendDate.formatDate("yyyy", row1.cpmdatfin)) : NULL
(Attention il faut mettre le NULL en minuscule)

J'ai pas vérifié sur Talend mais l'idée est là. Il faut utiliser les conditions ternaires et les imbriquées les unes dans les autres en utilisant également les fonctions de date de Talend
__________________
Google est ton ami mais ton voisin aussi

Modérateur BI
Mes tutoriels - FAQ Talend - FAQ SQL*Plus

Suivez @Developpez sur twitter !
jsd03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 12h13   #3
Membre confirmé
 
Avatar de PAYASS59
 
Homme
Inscription : février 2005
Messages : 735
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : février 2005
Messages : 735
Points : 291
Points : 291
merci de ton aide et ta réponse,

ci joint mon erreur en pièce jointe
Images attachées
Type de fichier : jpg erreur talend.JPG (169,9 Ko, 6 affichages)
__________________
Je préfère ma soif d'apprendre, à leurs certitudes de savoir....
PAYASS59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 14h11   #4
Rédacteur/Modérateur
 
Avatar de jsd03
 
Jean-Sébastien DARGES
Consultant décisionnel
Inscription : août 2008
Messages : 983
Détails du profil
Informations personnelles :
Nom : Jean-Sébastien DARGES
Localisation : France, Indre et Loire (Centre)

Informations professionnelles :
Activité : Consultant décisionnel

Informations forums :
Inscription : août 2008
Messages : 983
Points : 1 845
Points : 1 845
J'ai testé ce que je t'ai envoyé et à part une erreur de parenthèse mal placée, ça fonctionne.

Vérifie que ton champ en entrée est bien une date et que ton champ en sortie est bien un String.
__________________
Google est ton ami mais ton voisin aussi

Modérateur BI
Mes tutoriels - FAQ Talend - FAQ SQL*Plus

Suivez @Developpez sur twitter !
jsd03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h48.


 
 
 
 
Partenaires

Hébergement Web