sql - الجمع بين سكل مختلفة في جدول واحد باستخدام ساس




sql-server sas sas-macro (2)

هل تحاول الانضمام إلى النتيجة على customer_no؟

   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;

أود أن أعرف كيفية الجمع بين استعلامات سكل مختلفة في جدول واحد.

يجب أن يكون الشكل

customer_no|TOTAL_DIFF_LASTPAYMENT_OPENED_dt|utilization trend| count_enquiry_recency_365|ratio_currbalance_creditlimit 

لدي ملفين مع البيانات (انظر نموذج البيانات). أريد إنشاء جدول جديد يحتوي على إخراج هذه بروك.

نموذج البيانات: https://www.dropbox.com/sh/k7qz6m8w0yqenn7/AAAgYcVhHxCRNhiX5ZvK0q5Aa؟dl=0

/*  TOTAL_DIFF_LASTPAYMENT_OPENED_dt */

proc sql;  
  select customer_no, avg(TOTAL_DIFF_LASTPAYMENT_OPENED_dt)  
  from account_30_sort  
  group by  customer_no  ;  
quit;   
/*  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;  

صلة داخلية

ينتج عن الصلة الداخلية مجموعة نتائج تقتصر على الصفوف حيث يوجد تطابق في كلا الجدولين لما نبحث عنه. إذا كنت لا تعرف نوع الانضمام الذي تحتاج إليه ، فعادةً ما يكون هذا هو أفضل رهان.

ترك صلة خارجية

وينتج عن الارتباط الخارجي الأيسر ، أو الانضمام إلى اليسار ، مجموعة حيث يتم الاحتفاظ بكافة الصفوف من الجدول الأول أو الجانب الأيسر. لا تظهر الصفوف من الجدول الثاني أو الجانب الأيمن إلا إذا كان هناك تطابق مع الصفوف من الجدول الأول. في حالة وجود قيم من الجدول الأيسر ولكن ليس من اليمين ، سيقرأ الجدول قيمة خالية ، مما يعني أنه لم يتم تعيين القيمة.

RIGHT OUTER JOIN

الصلة الخارجية الصحيحة ، أو الربط الأيمن ، هي نفس الصلة اليسرى ، فيما عدا عكس الأدوار. تظهر جميع الصفوف من الجدول الأيمن في النتيجة ، ولكن الصفوف من الجدول الموجود على اليسار موجودة فقط إذا كانت مطابقة للجدول الموجود على اليمين. المساحات الفارغة خالية ، تمامًا كما هو الحال مع الرابط الأيسر.

الكامل الخارج الانضمام

ينشئ صلة خارجية كاملة أو صلة خارجية فقط مجموعة نتائج مع كافة الصفوف من كلا الجدولين ، بغض النظر عن ما إذا كانت هناك أية تطابقات. وبالمثل بالنسبة إلى الصلات اليسرى واليمنى ، فإننا نطلق على المساحات الخالية فارغة.

لمزيد من Reference





sql sql-server sas sas-macro