使用SAS将不同的SQL组合到一个表中
我想知道如何将不同的SQL查询组合到一个表中 格式应该是使用SAS将不同的SQL组合到一个表中,sql,sql-server,sas,sas-macro,Sql,Sql Server,Sas,Sas Macro,我想知道如何将不同的SQL查询组合到一个表中 格式应该是 customer_no|TOTAL_DIFF_LASTPAYMENT_OPENED_dt|utilization trend| count_enquiry_recency_365|ratio_currbalance_creditlimit 我有两个包含数据的文件(参见数据示例)。我想创建一个包含这些过程输出的新表 数据样本: 您是否正在尝试加入客户号的结果 proc sql; create table want as
customer_no|TOTAL_DIFF_LASTPAYMENT_OPENED_dt|utilization trend| count_enquiry_recency_365|ratio_currbalance_creditlimit
我有两个包含数据的文件(参见数据示例)。我想创建一个包含这些过程输出的新表
数据样本:
您是否正在尝试加入客户号的结果
proc sql;
create table want as
select t1.customer_no
,avg(t1.TOTAL_DIFF_LASTPAYMENT_OPENED_dt) as proc1
,sum(t1.cur_balance_amt /t1.creditlimit) / avg(t1.cur_balance_amt/(t1.creditlimit+t1.creditlimit)) as proc2
,sum(t2.enq_amt) as proc3
,sum(t3.cur_balance_amt/ t3.creditlimit) as proc4
from account_30_sort t1
,enquiry_30(where=(dt_opened - enquiry_dt <= 365)) t2
,account_30 t3
where t1.customer_no=t2.customer_no
and t2.customer_no=t3.customer_no
group by t1.customer_no
;
quit;
proc-sql;
创建所需的表作为
选择t1.customer\u no
,平均值(t1.总差异上次付款日)为过程1
,合计(t1.当前余额金额/t1.贷方限额)/avg(t1.当前余额金额/(t1.贷方限额+t1.贷方限额))作为程序2
,与过程3相同的总和(t2.enq_金额)
,总计(t3.当前余额\金额/t3.贷记限额)为过程4
从帐户\u 30\u排序t1
,enquiry_30(其中=(dt_opened-enquiry_dt请更具体地回答您的问题,发布样本数据,期望的输出等。什么是proc1,proc2 proc3 proc4?您是否试图将这些结果加入到customer_中?否?我有两个数据集内容不同值的文件“请参考数据文件”。我想创建一个新表,其中包含这些进程的输出。这样做不是吗?输出是单独生成的。我希望它们位于一个表中。你看过我的答案了吗?它看起来很完美,但有一些语法错误。
/* utilization trend */
proc sql;
select customer_no, sum (cur_balance_amt /creditlimit) / avg
(cur_balance_amt/(creditlimit+creditlimit))
from account_30_sort
group by customer_no;
quit;
/* count_enquiry_recency_365 */
DATA WORK.ENQUIRY_30;
SET ENQUIRY_30;
num_days= dt_opened - enquiry_dt;
RUN;
proc sql;
select customer_no, sum(enq_amt)
from ENQUIRY_30
where num_days <=365
group by customer_no;
quit;
/* ratio_currbalance_creditlimit */
proc sql;
select customer_no, sum( cur_balance_amt/ creditlimit)
from account_30
group by customer_no
;
quit;
proc sql;
create table want as
select t1.customer_no
,avg(t1.TOTAL_DIFF_LASTPAYMENT_OPENED_dt) as proc1
,sum(t1.cur_balance_amt /t1.creditlimit) / avg(t1.cur_balance_amt/(t1.creditlimit+t1.creditlimit)) as proc2
,sum(t2.enq_amt) as proc3
,sum(t3.cur_balance_amt/ t3.creditlimit) as proc4
from account_30_sort t1
,enquiry_30(where=(dt_opened - enquiry_dt <= 365)) t2
,account_30 t3
where t1.customer_no=t2.customer_no
and t2.customer_no=t3.customer_no
group by t1.customer_no
;
quit;