Hi Amir and thaks i hope to be clear I have my dataset LISTE_TABLE which contains all the tables i want to scan For my test it only contains the table "test_table" The result is to have this dataset COMPTEURS : table nb_avant test_table 136850 with 136850 the number of rows of my table "test_table" 30 %MACRO test();
31
32 proc sql;
33 create table COMPTEURS(table char(40), nb_avant num(8), nb_apres_att num(8), nb_purge_att num(8), nb_apres_obt num(8),
33 ! nb_purge_obt num(8));
34 select DATASET_A_TRAITER into :liste_tables separated by ' '
35 from LISTE_TABLES;
36 quit;
37
38 %do x = 1 %to %EVAL(%sysfunc(COUNTC(&liste_tables,' ')) + 1);
39 %let curr_table = %scan(&liste_tables,&x);
40 proc sql;
41 insert into COMPTEURS (table, nb_avant)
42 select &curr_table. as table, count(*) as nb_avant from TRAVAIL
43 ;
44 quit;
45 %end;
46
47 %MEND test;
48
49 %test();
MPRINT(TEST): proc sql;
MPRINT(TEST): create table COMPTEURS(table char(40), nb_avant num(8), nb_apres_att num(8), nb_purge_att num(8), nb_apres_obt
num(8), nb_purge_obt num(8));
NOTE: Table WORK.COMPTEURS created, with 0 rows and 6 columns.
MPRINT(TEST): select DATASET_A_TRAITER into :liste_tables separated by ' ' from LISTE_TABLES;
MPRINT(TEST): quit;
NOTE: PROCEDURE SQL a utilisé (Durée totale du traitement) :
real time 0.00 seconds
cpu time 0.01 seconds
SYMBOLGEN: La macro-variable LISTE_TABLES est résolue en test_table
SYMBOLGEN: La macro-variable LISTE_TABLES est résolue en test_table
SYMBOLGEN: La macro-variable X est résolue en 1
MPRINT(TEST): proc sql;
SYMBOLGEN: La macro-variable CURR_TABLE est résolue en test_table
MPRINT(TEST): insert into COMPTEURS (table, nb_avant) select test_table as table, count(*) as nb_avant from TRAVAIL ;
ERROR: Les colonnes suivantes sont introuvables dans les tables de contribution : test_table.
ERROR: Les colonnes suivantes sont introuvables dans les tables de contribution : test_table.
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
MPRINT(TEST): quit;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL a utilisé (Durée totale du traitement) :
real time 0.00 seconds
cpu time 0.01 seconds
50 options mprint symbolgen;
51
52 %LET _CLIENTTASKLABEL=;
53 %LET _CLIENTPROCESSFLOWNAME=;
54 %LET _CLIENTPROJECTPATH=;
55 %LET _CLIENTPROJECTPATHHOST=;
56 %LET _CLIENTPROJECTNAME=;
57 %LET _SASPROGRAMFILE=;
58 %LET _SASPROGRAMFILEHOST=;
59
60 ;*';*";*/;quit;run;
3 Le Système SAS 09:12 Wednesday, July 9, 2025
61 ODS _ALL_ CLOSE;
62
63
64 QUIT; RUN;
65
... View more