|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : août 2010 Messages : 53 ![]() |
Bonjour,
je me suis mis dernièrement à Talend pour mon stage et je trouve que c'est un outil très puissant. seulement je n'arrive pas à faire une chose avec et je ne sais pas si c'est possible. En effet je dois gérer des imports de fichiers CSV.c'est à dire supposons que j'importe un fichier 'A' à T1 avec les colonnes suivantes utilisateur | voiture associé David | BMW à T2 j'importe un fichier 'B' qui est une mise a jour de 'A' ou il y'a utilisateur | voiture associé David | MERCEDES comment pouvoir mettre a jour ma table sans rajouter une ligne c'est à dire écraser la valeur existante en faisant des tests sur les colonnes ? |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Jef LehembreConsultant en Business Intelligence Inscription : mars 2011 Messages : 41 ![]() |
Il te faut pour cela faire une Mise à Jour. (UPDATE)
Pour faire une mise à jour, il te faut une clé de Mise à jour. Cad un identifiant unique pour chaque ligne. Il faut donc que tu définisses cette clé. Dans ton exemple, il te faudra rajouter une colonne avec un id, parce que des David ayant une BMW il peut y en avoir un grand nombre! tu me suis? Quel est exactement le schéma de ta table? |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2010 Messages : 53 ![]() |
Merci pour la réponse.
en faite il s'agit d'un très grand schéma (celle de l'entreprise ou je fait mon stage) et je dois faire des imports a des fichiers seulement les informations dans ces fichiers sont variable entre T1 et T2 par exemple j'ai 3 table dans ma base : -utilisateur(idutil,nom,prenom) -voiture(idvoiture,matricule,...) -affectation_util_voiture(idutil,idvoiture,date_deb_affect,date_fin_affect) et a T1 on a dans le fichier à importer : 3 colonnes : nom | prenom | matricule hex | davix |05 hx 101 donc moi ce que je fait c'est que j'importe ce fichier dans une table temporaire qui contient les informations du fichiers plus d'autres informations venant de l'interface comme les dates. et puis je dois éclater ces informations sur les tables citées avant toute en gardant les relations . j'arrive a faire cela.le problème qui se pose c'est : par exemple après le 1er import on a : utilisateur(1,hex,david) voiture(2,05 hx 101) affectation_util_voiture(1,2,20/05/2008,20/05/2010) le 2ème fichier a importer a T2 : on a nom | prénom | matricule hex | davix |121 Hsd 2011 je veux pouvoir vérifier les dates (qui sont entré manuellement) mais pour cette utilisateur avant d'effectuer des changement sur la date ou sur la voiture : par exemple si la nouvelle date saisie est inférieur a la date précédente garder la précédente sinon l'écraser avec la nouvelle. ce genre d'opérations J'espère que je me suis bien exprime Merci pour votre aide |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : février 2009 Messages : 114 ![]() |
Bonjour,
JE ne sais pas avec quel SGBD tu travailles, tu peux faire des IF ou des CASE WHEN directement dans ta requête. par exemple : select liste_champs, case date_saisie<date1 then date1 ELSE date2 end as date from ta_table. Puis tu envoie tout ça dans ta nouvelle table. Si tu ne veux pas utiliser la requête tu peux faire cela dans le tMap avec une expression du genre ( case date_saisie<date1)? date1 :date2 Merci
__________________
bbl MeMa |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com