Как сослаться на имя переменной, которое является числом в sas sql - PullRequest
0 голосов
/ 09 июля 2020

У меня следующая проблема:

Я хочу использовать имя столбца переменной в sas sql.

Получите это сообщение об ошибке:

 t1.201912
                   
ERROR 22-322: Syntax error, expecting one of the following: ein Name, *. 

Почему-то мой оператор sql не распознает эти столбцы 201912 и 202006.

Может ли кто-нибудь мне помочь?

Это мой код:

%let PRV_MONTH = %sysfunc(intnx(month,%sysfunc(today()), -1,same),YYMMN.); 
%let End_PRV_YEAR = %sysfunc(intnx(year,%sysfunc(today()), -1,e),YYMMN.);

PROC SQL;   
CREATE TABLE WORK.RESULT AS 
SELECT t2.DIM_TIME_ID, 
      t1.AGENCY,
      Sum(t2.STACK) as OWN_STACK 
      
  FROM xy.SALES t1, xy.STACK t2
  WHERE (t1.DIM_SALES_ID = t2.DIM_SALES_ID AND t2.DIM_TIME_ID IN (&End_PRV_YEAR,&PRV_MONTH))
  GROUP BY t2.DIM_TIME_ID,t1.AGENCY
  ORDER BY t1.AGENCY ASC; 
QUIT;



PROC TRANSPOSE DATA=WORK.RESULT OUT=horizontal;
BY AGENCY;
ID DIM_TIME_ID;

QUIT;
PROC SQL;

CREATE TABLE WORK.QUERY_FOR_HORIZONTAL AS 
SELECT t2.AREA, 
      t2.DISTRICT, 
      t1.AGENCY,
      t1.&End_PRV_YEAR, 
      t1.&PRV_MONTH
  FROM WORK.HORIZONTAL t1 INNER JOIN xy.SALES t2 ON (t1.AGENCY = t2.AGENCY);
QUIT;

1 Ответ

0 голосов
/ 09 июля 2020

В зависимости от фактического набора данных вам может потребоваться использовать

Средство просмотра показывает метку столбца 201912, а фактическое имя столбца - _201912:

t1._201912

или фактическое имя столбца - 201912, и вам нужно использовать синтаксис литерала имени:

t1.'201912'n
...