|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre habitué
![]() Consultant informatique Inscription : mars 2002 Messages : 211 ![]() |
Bonjour,
Quelqu'un peut-il m'aider avec le problème suivant? J'ai 2 tables: Client et Contrats qui sont liées par l'id du Client (idcl) Code :
Le but est d'obtenir une table finale avec à chaque fois une ligne qui contient: Le client et tous ses contrats les unes à la suite des autres (ainsi que les infos du contrat). J'ai essayé avec un proc transpose mais je n'y arrive pas puisque je suis avec 2 table et des données en plus. Ci dessous une exemple du code que j'ai essayé: Code :
ligne1: Bernard AAA BBB ligne2: Fabian CCC mais je n'arrive pas à mettre les données supplémentaires du contrat, par exemple son montant (am) Quelqu'un peut-il m'aider? Ou existe-t-il une meilleure solution que TRANSPOSE? Merci |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
la solution via une transpose est une option envisageable, il est plus simple dans ce cas que tu transpose en premier ta table contrat2 de sorte à obtenir une ligne par idcl. Forme ensuite une table finale en joignant tes deux table (à identifiant unique), comme tu l'as fait par un data step par exemple
|
|
|
00
|
|
|
#3 | |||
|
Membre habitué
![]() Consultant informatique Inscription : mars 2002 Messages : 211 ![]() |
Citation:
Quand je fais: Code :
mais si je change mon var en J'obtiens deux lignes par colonnes. Je ne comprend pas toute la subtilité du transpose mais comment y ajouter toutes mes variables? |
|||
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
bon j'abdique avec la proc transpose. ya surement un moyen mais pour être franc je ne l'utilise quasiment jamais et je ne suis pas fan du tout. si qqn à la soluce uniquementvia transpose je suis preneur.
voici en tout cas une solution Code :
|
||
|
|
00
|
|
|
#5 | ||||
|
Invité de passage
![]() Aline SINERChargée d'étude statistique Inscription : mars 2011 Messages : 2 ![]() |
Bonjour,
J'ai déjà rencontré le même problème et je n'avais pas trouvé comment transposer plusieurs variables dans un même transpose. J'ai donc fait de l'ensemble de mes variables à transposer une seule variable dans une étape data préalable à la proc transpose. Code :
Code :
Obs idcl idct1 nom1 am1 idct2 nom2 am2 1 001 101 AAA 150 102 BBB 200 2 003 103 CCC 500 La dernière étape étant le merge avec la table client1 pour récupérer le nom du client. |
||||
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
Bonjour Aline,
La solution que j'avais donné au dessus présente une alternative à la proc transpose. As tu essayé avec cette approche? Si jamais tu n'y arrive pas, merci de nous donner tes données en entrée (ou leur forme au moins), ainsi que la présentation que tu souhaites en sortie.. Manoutz |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Aline SINERChargée d'étude statistique Inscription : mars 2011 Messages : 2 ![]() |
Bonjour Manoutz,
Excuse-moi, je n'ai pas été claire. Le code que je proposais permet également de répondre à la question de L0007 avec des étapes préalables à la proc transpose. Je le réutilise parfois, particulièrement quand j'ai besoin de transposer de nombreuses variables. Ci-dessous le code dans son intégralité. Code :
Bonne soirée, |
||
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Voici une solution à ton problème.
Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
Bonjour Aline,
Je ne sais pas si la solution de megamind te convient, il y a peut être plus direct Permets moi de reposer la question: transposer, oui, mais comment? Quelle forme veux tu en sortie? |
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 466 ![]() |
Bonjour.
Une petite solution sans TRANSPOSE mais avec des ARRAYS. Pour transposer élégamment plusieurs variables, il faut préparer la table comme le fait Aline si on veut utiliser la proc TRANSPOSE. Sinon on bricole. Code :
Olivier |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com