Bonjour,

Je dispose d'une table avec disons 1000 000 lignes et 200 colonnes.
En sortie, on m'impose de fournir 30 variables dans un ordre donné, mais d'un trimestre à l'autre, on peut me rajouter quelques variables.

Dans le programme que j'ai récupéré, la liste des variables à fournir est écrite plusieurs fois "manuellement", que ce soit dans des data step ou dans des proc sql, ce que je ne trouve pas très pratique car il faut bien vérifier à chaque fois que les nouvelles variables ont bien été ajoutées.
J'avais dans l'idée de créer une table "structure" contenant mes 30 variables à vide, dans l'ordre attendu de sortie, puis de remplacer chaque étape où apparaissait la liste des variables par une fusion avec cette table "structure" afin de ne récupérer que les variables attendues sans avoir à re-contrôler la présence des nouvelles variables.

Malheureusement je bug un peu avec les jointures, car comme ma table "structure" est vide, forcément je n'arrive pas à faire de liaison valable.
Avec ce code, je récupère en effet bien mes 1 000 000 d'individus et les 30 variables d'intérêt dans le bon ordre, mais forcément, toutes les lignes sont vides...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
proc sql;
create table test_recup_var_interet as
select struc.*
from mabase as m
	left join
	 structure as struc
	on m.identifiant=struc.identifiant;
quit;
J'imagine qu'il ne faut pas passer par une jointure mais je ne vois pas comment faire... Quelqu'un aurait-il une idée ? Par avance merci



Edit : on me souffle une solution que je vais donc tester : créer une macrovariable avec l'ensemble des noms de mes variables et l'utiliser ensuite dans les étapes data ou SQL.