Bonjour à toutes et à tous
Après moult recherches dns les tutoriels et les anciennes discusions, je n'ai pas trouver de solutions
à mon problème. je viens solliciter votre aide.
Bien entendu tout lien vers une sucseptible de m'aider serait labienvenue
Je dispose de trois tables "Team_Player" , "Team_Sponsor" et "Infos_Club" que je souhaite fusionner (par Hash table que je découvre). La table attendue
en sortie doit contenir tous les champs de "Team_Player" , 3 champs "Team_Sponsor" et 3 champs "Infos_Club".
Ma clé de jointure est se nomme : Id_Player dans "Team_Player"
Joueur_CD dans "Team_Sponsor"
Id_Joueur dans "Infos_Club"
Le code que j'utilise pour ce faire est le suivant :
Ma fusion ne se fait car j'ai le message d'erreur suivant : "Type mismatch for data variable Numero ... " idem pour les champ "Equipementier", "DT_Contrat","Effectif","Ville" et "DT_Creation" .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 data Table_last ; /*Les 3 champs de "Team_Sponsor" */ attrib Numero length=$3. ; atrrib Equipementier length=$12. ; attrib DT_Contrat length = 5 format = ddmmyy10. ; /*Les 3 champs de "Infos_Club"*/ attrib Effectif length=$3. ; atrrib Ville length=$12. ; attrib DT_Creation length = 5 format = ddmmyy10. ; set WORK.Team_Player ; if _n_ = 1 then do ; declare hash h_Spon(dataset:"WORK.TEAM_SPONSOR"); h_Spon.defineKey("Joueur_CD") ; h_Spon.defineData("Numero","Equipementier","DT_Contrat") ; h_Spon.defineDone(); declare hash h_Club(dataset:"WORK.Infos_Club"); h_Club.defineKey("Id_Joueur") ; h_Club.defineData("Effectif","Ville","DT_Creation") ; h_Club.defineDone(); IF (h_Spon.FIND(KEY: Joueur_CD) = 0 ) and (h_Club.FIND (KEY:Id_Joueur )= 0) THEN OUTPUT; end ; run;
Pour plus de compréhension, vous trouverez en pj (sur les 3 premières feuilles ) la structure des tables que je dois fusionner.
Je vous remercie par avance de votre aide
Kedmard.
Partager