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!