sas - 如何在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;
解决方案
根据您可能需要使用的实际数据集
查看器显示列标签201912
,实际列名是_201912
:
t1._201912
或实际的列名是201912
,您需要使用名称文字语法:
t1.'201912'n
推荐阅读
- drm - 绕过 HDCP 保护
- java - 每当创建新 pod 时,如何自动将证书添加到 kubernetes 上的 Java 信任库?
- powershell - 如何正确转义嵌套在 Start-Process 命令的 ArgumentList 中的 Start-Process 命令的 ArgumentList 中的空格?
- recursion - 查找所有子字符串的时间复杂度是多少?
- excel - 检查用户是否启用了宏
- python-3.x - 从 ee.reduceRegion Google Earth Engine Python 获取图像
- amcharts - AMCharts Maps v4 - 调整大小时 heatLegend 中的颜色?
- laravel-echo - Laravel Echo 尝试连接 wss 而不是 ws
- popup - 如何为 iExplorer 弹出窗口设置标题?
- python - python lru_cache中的单位是什么?