我使用SAS执行查询,有时会向我的团队发送电子邮件以确认查询已执行。但是,除非我手动检查,否则我从未真正知道它是否成功。
例如,我有一个执行存储过程的SAS作业,该存储过程会附加一个包含今天更多数据的表。我希望能够将该表中的MAX(日期)添加到电子邮件文本,或者将日期为今天的COUNT(*)添加到电子邮件中,这样我就可以知道添加了多少条记录。
以下是我的想象:
PROC SQL;
CREATE TABLE sasData AS
SELECT
COUNT(*) AS myRecordCount
FROM
tableName
;QUIT;
%LET newVariable = sasData.myRecordCount;
所以,我知道上面的内容并不是它的工作原理,但它是这个想法。
有谁能告诉我如何正确地做到这一点?谢谢!
答案 0 :(得分:1)
如果您使用的是SQL,则可以获取自动宏变量SQLOBS中前一个SQL语句处理的观察数。将其保存到另一个宏变量,因为在下一个SQL语句运行时它将被覆盖。
proc sql ;
create table class as select * from sashelp.class ;
%let nobs=&sqlobs ;
insert into class select * from sashelp.class where name like 'A%' ;
%let nobs2=&sqlobs ;
%put &=nobs &=nobs2 ;
NOBS=19 NOBS2=2
您可以使用INTO子句创建宏变量。
select count(*)
, max(age)
into :nobs3 trimmed
, :max_age trimmed
from sashelp.class
;