我想做类似上面的事情。 当变量secid具有出现在名为“secids”的表中的值时,创建一个获取数据的表。 由于我想要的值大约是600,我不能用于(100,101等)。 我需要以某种方式从另一个表中提取这些值。 任何帮助都会非常感激,因为我不是SAS的专家。 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我创建了一个表 (EM_UPLOAD),我想更新另一个表 (QUESTVAR_CASEITEM) 中的值。 QUESTVAR 表中的值为空,我将它们设置为非空。 我正在尝试使用以下代码执行此操作:
PROC SQL;
UPDATE CD1PROD.QUESTVAR_CASEITEM a
SET a.DEBIT_ENTRYMODE=(SELECT EM
FROM EM_UPLOAD b
WHERE A.SEQCASEITEM = B.CASEITEM)
WHERE SEQCASEITEM IN (SELECT CASEITEM FROM EM_UPLOAD);
QUIT;
它一直在 SET 行上出错,说它在等待一个 = 当一个 = 已经存在时......
日志转储如下:
1 ;*';*";*/;quit;run;
2 OPTIONS PAGENO=MIN;
3 %LET _CLIENTTASKLABEL='EM_UPDATE_TESTING';
4 %LET _CLIENTPROCESSFLOWNAME='Process Flow';
5 %LET _CLIENTPROJECTPATH='';
6 %LET _CLIENTPROJECTPATHHOST='';
7 %LET _CLIENTPROJECTNAME='';
8 %LET _SASPROGRAMFILE='[REDACTED]';
9 %LET _SASPROGRAMFILEHOST='W7LT110183466';
10
11 ODS _ALL_ CLOSE;
12 OPTIONS DEV=PNG;
13 GOPTIONS XPIXELS=0 YPIXELS=0;
14 FILENAME EGSR TEMP;
15 ODS tagsets.sasreport13(ID=EGSR) FILE=EGSR
16 STYLE=HTMLBlue
17 STYLESHEET=(URL="file:///C:/Program%20Files%20(x86)/SAS94/x86/SASEnterpriseGuide/7.1/Styles/HTMLBlue.css")
18 NOGTITLE
19 NOGFOOTNOTE
20 GPATH=&sasworklocation
21 ENCODING=UTF8
22 options(rolap="on")
23 ;
NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR
24
25 GOPTIONS ACCESSIBLE;
26 LIBNAME CD1PROD SQLSVR USER='XXXXXXXXXXXXXX' PASSWORD=XXXXXXXXXX DSN=STGRAMIHQSQLF18adjhub SCHEMA=DBO QUALIFIER=AdjHub;
NOTE: Libref CD1PROD was successfully assigned as follows:
Engine: SQLSVR
Physical Name: STGRAMIHQSQLF18adjhub
27 /*Update EM field in LEAN*/
28 PROC SQL;
29 UPDATE CD1PROD.QUESTVAR_CASEITEM as a
30 SET A.DEBIT_ENTRYMODE = (SELECT EM
_
73
76
ERROR 73-322: Expecting an =.
ERROR 76-322: Syntax error, statement will be ignored.
31 FROM EM_UPLOAD as b
32 WHERE a.SEQCASEITEM = b.caseitem)
33 WHERE SEQCASEITEM IN (SELECT caseitem FROM EM_UPLOAD);
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
34 QUIT;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
35
36 GOPTIONS NOACCESSIBLE;
37 %LET _CLIENTTASKLABEL=;
38 %LET _CLIENTPROCESSFLOWNAME=;
39 %LET _CLIENTPROJECTPATH=;
2 The SAS System 15:33 Monday, January 25, 2021
40 %LET _CLIENTPROJECTPATHHOST=;
41 %LET _CLIENTPROJECTNAME=;
42 %LET _SASPROGRAMFILE=;
43 %LET _SASPROGRAMFILEHOST=;
44
45 ;*';*";*/;quit;run;
46 ODS _ALL_ CLOSE;
47
48
49 QUIT; RUN;
50
尝试从目标变量名称中删除别名。 您只能更新单个数据集中的变量,因此可能会令人困惑。
... SET DEBIT_ENTRYMODE= ...
除非 EM_UPLOAD 只有一个观察结果,否则您可能想要修改 UPDATE 语句的 WHERE 子句。
WHERE SEQCASEITEM IN (SELECT CASEITEM FROM EM_UPLOAD);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.