首页 > 解决方案 > 如何在sas sql中引用一个数字的变量名

问题描述

我有以下问题:

我想在 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;

标签: sas

解决方案


根据您可能需要使用的实际数据集

查看器显示列标签201912,实际列名是_201912

t1._201912

或实际的列名是201912,您需要使用名称文字语法:

t1.'201912'n

推荐阅读