Preciso automatizar uma rotina e as bases possuem em sua nomenclatura a data a qual se referem. Exemplo: Clientes_202008 = (Clientes_ANOMES). A base principal é gerada apenas após o fechamento das informações, após o dia 20 de cada mês, portanto a base que será consultada será -1 ou -2 conforme a data da consulta.
Estou tentando atribuir essas informações à condicional que considere a particularidade da base. mas sempre obtenho o retorno "The quoted string currently being processed has become more than 262 characters long. You might have unbalanced quotation marks.". Entendo que está indicando que há algum erro de lógica, mas não consegui identificar até o momento.
%let dia = %sysfunc(day(%sysfunc(today())));
%let mes = %sysfunc(month(%sysfunc(today())));
%let ano = %sysfunc(year(%sysfunc(today())));
%macro AJUSTA_MES;
%IF &dia. < 20 %THEN %DO;
%IF &mes. = 1 %or &mes. = 2 %THEN %let mes = &mes - 2 %and ano = &ano - 1; %ELSE
%let mes = &mes - 2;
%END;
%IF &dia. > 20 %THEN %DO;
%IF &mes. = 1 %THEN %let mes = &mes -1 %and ano = &ano - 1; %ELSE
%let mes = &mes - 1;
%END;
%mend AJUSTA_MES;
%AJUSTA_MES;
%put &dia. &mes. &ano.;