Olá tudo bem?
Gostaria de saber sobre um pequeno detalhe que não foi comentado neste vídeo sobre macro funções. Trata-se da macro variável. Com base no código abaixo podemos afirmar que ao passar o parâmetro para a função estamos alterando o valor da macro variável?
Caso a resposta seja SIM é um pouco estranho, pois não estamos atribuindo valores na macro variável safra, estamos apenas usando esse nome como parâmetro da macro função. Concordam?
Faço esse questionamento porque no vídeo que antecede falando especificamente sobre a macro variável ele falou que teríamos que mudar o VALOR que está sendo atribuído. Neste caso a macro variávelsafra é descartável? Esse ponto ficou um pouco confuso.
%let safra = 201710;
%macro cruza_clientes_jogos(safra);
proc sql;
create table cadastro_cliente_jogos_&safra as
select
a.*,
b.total_contratos_2017T4 as total_contratos_&safra,
b.contratos_validos_2017T4 as contratos_validos_&safra
from alura.cadastro_cliente_v3 as A
left join operacoes_&safra._consolidada as B
on input(substr(a.cpf,1,11),commax11.0) = b.cpf
;quit;
%mend cruza_clientes_jogos;
/* Chamando a macro função 3x com parâmetros diferentes */
%CRUZA_CLIENTES_JOGOS(201710);
%CRUZA_CLIENTES_JOGOS(201711);
%CRUZA_CLIENTES_JOGOS(201712);Será que o parâmetro da macro função sobrescreve o valor da macro variável?
Obrigado pela ajuda e esclarecimentos. Curso top!