【发布时间】:2022-01-22 18:18:58
【问题描述】:
我正在学习用 sas 和 sql 编程,我想创建一个表,其中包含昨天的值(我已经将它存储在宏变量 & 昨天),天数和天数之间的差异昨天和前天。
据说代码应该没问题,空格是通过post放在宏变量中的,实际上它返回的错误是语法,它并没有告诉我它没有找到这样的日期或类似的东西。
这是我的代码:
PROC SQL;
CREATE TABLE WORK.QUERY_FOR_TRANSPOSED_DAYBEFORE AS
SELECT &yesterday. AS dia_ayer,
abs((t1." &yesterday."n - t1." &before_yesterday."n) / t1." &before_yesterday."n) end AS Diferencia_dias,
t1." &before_yesterday."n,
t1." &yesterday."n
FROM WORK.Transposed_daybefore t1;
QUIT;
我在 & before_yesterday 之后立即收到此语法错误。 "N) 以 Difference_days 结束,就在) 和 "end" 之前
ERROR 22-322: Syntax error, expecting one of the following: !, !!, &, *, **, +, ',', -, /, <, <=, <>, =, >, >=, ?, AND, AS,
CONTAINS, EQ, EQT, FROM, GE, GET, GT, GTT, LE, LET, LIKE, LT, LTT, NE, NET, OR, ^=, |, ||, ~=.
它在 FROM 之前返回此错误:
ERROR 22-322: Syntax error, expecting one of the following: un nombre, ;, (, ',', ANSIMISS, AS, CROSS, EXCEPT, FULL, GROUP, HAVING,
INNER, INTERSECT, JOIN, LEFT, NATURAL, NOMISS, ORDER, OUTER, RIGHT, UNION, WHERE.
ERROR 76-322: Syntax error, statement will be ignored.
如果您能帮我找出错误,我将非常感激,非常感谢您。
【问题讨论】:
-
SAS 和 MySQL 有什么关系?调整标签列表。
-
我在 sas 中使用 sql proc
-
end在这个脚本中似乎相当不必要 -
您是如何创建宏变量 YESTERDAY 和 BEFORE_YESTERDAY 的?它们包含什么文字?