Você primeiro precisava criar a varíavel macro já com o valor ao qual gostaria de substituir numa etapa anterior. (dentro de um data step).
para efeitos didáticos talvez eu criasse um data step sozinho desta forma:
data _null_;
x=put(&data_dia_util,yymmddn8.); /*convertendo o valor de data_dia_util para formato YYmmddn8. */ %let DATA_MOV=put(x,$10.); /* convertando o valor do x (está como data/numérico) para caracter/string */ call symput('nome_tabela','tabela_' || &DATA_MOV); /* aqui vc concatena duas string 'tabela_' com o conteúdo da string DATA_MOV */ run;
/* Somente no próximo data step vc já usa o conteúdo criado */
data &nome_tabela;
...
run;
Quando você fez "data tabela_&data_mov" --> ele ainda não entende que 'tabela_' é string e vc está substituindo uma parte.. e ainda faltou o || para concatenar as string. - Com certeza existe um jeito melhor de fazer do que eu fiz, mas isto é considerando o pouco que sei sobre SAS MACRO.
Abaixo tem um material básico sobre SAS Macros, tem cursos oficiais também pelo SAS.
SAS Tutorial | How to Create Macro Variables and Use Macro Functions - YouTube
How to create and use SAS macro functions - SAS Users
Estou aqui para tentar ajudar. A comunidade serve para isto.
... View more