Dies ist wahrscheinlich eine einfache Frage, aber ich habe noch nicht gelungen, es herauszufinden.SAS Where-Klausel mit Makrovariablen
Ich muss einige Daten aus einem SAS-Dataset abrufen, wobei das DATE in einen 6-Monats-Bereich fällt (z. B. 01JAN2017 bis 30JUN2017) Ich habe versucht, den folgenden Code auszuführen, aber es führt zu einem Fehler. Irgendwelche Gedanken? Ich bin sicher, das ist etwas einfach ...
%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;
Das Ergebnis ist der folgende Fehler: HINWEIS: Zeile durch die Makrovariable erzeugt „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.