Это, скорее всего, простой вопрос, но я еще не смог его понять.SAS Where Clause with Macro Variables
Мне нужно получить некоторые данные из набора данных SAS, где DATE находится в пределах диапазона 6 месяцев (например, от 01JAN2017 до 30JUN2017). Я попытался выполнить следующий код, но это приводит к ошибке. Есть предположения? Я уверен, что это что-то просто ...
%let start1 = %Sysfunc(InputN(01JAN2017 , Date9.)) ;
%let start2 = %sysfunc(putN(&start1, date9));
%put start1 &start1 start2 &start2;
%let end1 = %sysfunc(inputn(30JUN2017,Date9.));
%let end2 = %sysfunc(putN(&end1, date9));
%put end1 &end1 end2 &end2;
proc print data=ext.account_detail (obs = 10);
where manufacturer = 'FORD' or product_segment = 'CHRYSLER'
and manufacturer_date between &start2 and &end2;
run;
В результате получается следующее сообщение об ошибке: Примечание: Линия генерируется макропеременной «START2».
26 01JAN2017
_______
22
76
ERROR: Syntax error while parsing WHERE clause.
ERROR 22-322: Syntax error, expecting one of the following: !!, *, **, +, -, /, AND, ||.
ERROR 76-322: Syntax error, statement will be ignored.