【发布时间】:2018-03-16 01:24:37
【问题描述】:
我正在使用 sas sql。
我有一个脚本,它总是根据时间间隔生成不同数量的表。对于每一天的一张表,除了列余额之外,列的名称都是相同的。此列名称包含日期。表的名称是 TableName_date,如 TableName_07092017 ... TableName_31092017
MT column RT AREA balance_07092017
ACCOUNTS balance_lcy 30 2004862772
ACCOUNTS balance_lcy 30 CA 121390255,8
ACCOUNTS balance_lcy 30 GL 323499587
ACCOUNTS balance_lcy 30 TF -7821721555
C_ACCOUNTS balance_lcy 35 CA 2,49733E+11
C_ACCOUNTS balance_lcy 35 NO 3748192715
MT column RT AREA balance_08092017
ACCOUNTS balance_lcy 30 -24278162321
ACCOUNTS balance_lcy 30 CA 225363070.05
ACCOUNTS balance_lcy 30 GL 3117815863.7
ACCOUNTS balance_lcy 30 TF 47914289803
C_ACCOUNTS balance_lcy 35 CA 37637391174
C_ACCOUNTS balance_lcy 35 NO 163722935.2
是否可以创建一个自动连接这些表的脚本?它们应该是这样的
MT column RT AREA balance_07092017 balance_08092017 balance_09092017 balance_10092017....
ACCOUNTS balance_lcy 30 2004862772 -24278162321
ACCOUNTS balance_lcy 30 CA 121390255,8 225363070.05
ACCOUNTS balance_lcy 30 GL 323499587 3117815863.7
ACCOUNTS balance_lcy 30 TF -7821721555 47914289803
C_ACCOUNTS balance_lcy 35 CA 2,49733E+11 37637391174
C_ACCOUNTS balance_lcy 35 NO 3748192715 163722935.2
这是创建我需要加入的表的代码
%macro sqlloop(start,end);
PROC SQL;
%DO DT_REP=&start. %TO &end.;
%let year=%sysfunc(year(&DT_REP.));
%let month=%sysfunc(month(&DT_REP.));
%let month1=%sysfunc(PUTN(&month.,z2.));
%let day=%sysfunc(day(&DT_REP.));
%let day1=%sysfunc(PUTN(&day.,z2.));
%let datum= &day1.&month1.&year.;
%put &datum.;
CREATE TABLE DUPLICITY_BAL_&datum. as
select 'ACCOUNTS' as MT, 'balance_lcy' as column, rec_type, area, sum(balance_lcy) as balance_lcy, count(balance_lcy) as count
from database.ACCOUNTS
where version_no = 1
and dt_rep = &DT_REP.
group by rec_type, area
union all
select 'C_ACCOUNTS' as MT, 'balance_lcy' as column, rec_type, area, sum(balance_lcy) as balance_lcy, count(balance_lcy) as count
from database.C_ACCOUNTS
where version_no = 1
and dt_rep = &DT_REP.
group by rec_type, area;
%END;
QUIT;
%mend;
%sqlloop(start=21070, end=21073)
【问题讨论】:
-
您应该发布到目前为止您尝试过的代码。只需将 MT、column、RT 和 AREA 上的表合并在一起,这似乎是一项简单的任务。我很想创建一个视图而不是一个表,只是为了避免重复数据存储。
-
"是否可以创建一个脚本来自动连接这些表?"是的。请确保您的问题实际上是您想要回答的问题,即如何创建一个脚本来连接这些表?我也不确定“自动”部分的位置。
-
例如我只显示了2个表,但是脚本生成了两个以上的表,每次脚本运行时,表的数量都会不同...我有任何代码,因为我不知道,如何编写动态连接...我第一种情况我得到 3 个表,第二种情况我得到 4 个表,第三种情况我得到 10 个表...
-
您尚未在此处发布您尝试过的内容。下面有一个解决方案的建议。如果您需要示例代码,请将您的数据作为数据步骤发布,并展示您尝试解决此问题的方法。
-
我添加了一个创建表格的代码