Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SAS将不同的SQL组合到一个表中_Sql_Sql Server_Sas_Sas Macro - Fatal编程技术网

使用SAS将不同的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

我想知道如何将不同的SQL查询组合到一个表中

格式应该是

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;