zoukankan      html  css  js  c++  java
  • SAS EG第一课练习1

    现有3张银行数据表,求数据表中账户办理的新卡开卡前账户余额

    KDD99_CARD,每条记录描述了一个账户上的信用卡信息

    信用卡(Cards)表
    名称     标签
    card_id    信用卡id(主键)
    disp_id    账户权限号
    type     卡类型
    issued     发卡日期

    KDD99_DISP,每条记录描述了客户和账户之间的关系,以及客户操作账户的权限

    权限分配表(Disp)
    名称      标签        说明
    disp_id     权限设置号    (主键)
    client_id   顾客号
    account_id  账户号
    type     权限类型      只用”所有者”
                  身份可以进
                  行进行增值
                  业务操作和
                  贷款

    KDD99_TRANS,每条记录代表每个账户上的一条交易

    交易表 (Trans)
    名称     标签
    trans_id   交易序号(主键)
    account_id   发起交易的账户号
    date     交易日期
    type     借贷类型
    operation  交易类型
    amount    金额
    balance    账户余额
    K_Symbol  交易特征
    bank      对方银行
    account    对方账户号

    思路:三表左连接后输出目标

    SQL:

    PROC SQL;
       CREATE TABLE WORK.QUERY_FOR_KDD99_CARD_0001(label="QUERY_FOR_KDD99_CARD") AS 
       SELECT t1.card_id, 
              t1.disp_id, 
              t1.issued, 
              t1.type, 
              /* MAX_of_date */
                (MAX(t3.date)) FORMAT=YYMMDD10. AS MAX_of_date, 
              t3.account_id
          FROM CDA1.KDD99_CARD t1
               LEFT JOIN CDA1.KDD99_DISP t2 ON (t1.disp_id = t2.disp_id)
               LEFT JOIN CDA1.KDD99_TRANS t3 ON (t2.account_id = t3.account_id)
          WHERE t2.type = '所有者' AND t1.issued > t3.date
          GROUP BY t1.card_id,
                   t1.disp_id,
                   t1.issued,
                   t1.type,
                   t3.account_id;
    QUIT;
    

      

    PROC SQL;
       CREATE TABLE WORK.QUERY_FOR_KDD99_CARD_0002(label="QUERY_FOR_KDD99_CARD") AS 
       SELECT t1.card_id, 
              t1.disp_id, 
              t1.issued, 
              t1.type, 
              t1.MAX_of_date, 
              t1.account_id, 
              /* MEAN_of_balance */
                (MEAN(t2.balance)) FORMAT=DOLLAR. AS MEAN_of_balance
          FROM WORK.QUERY_FOR_KDD99_CARD_0001 t1
               LEFT JOIN CDA1.KDD99_TRANS t2 ON (t1.account_id = t2.account_id) AND (t1.MAX_of_date = t2.date)
          GROUP BY t1.card_id,
                   t1.disp_id,
                   t1.issued,
                   t1.type,
                   t1.MAX_of_date,
                   t1.account_id;
    QUIT;
    

      先放这后期再编辑

  • 相关阅读:
    辨析六种单例模式
    理解模板模式
    常用DOM API总结
    自我剖析——一天的效率
    对两个数组合并,并去重
    Qt 创建一个QtDesinger第三方控件
    Qt中QComboBox中自定义界面使用stylesheet实现下拉按钮独立效果
    内核对象 windows操作系统
    python之基本内容
    python之总体理解
  • 原文地址:https://www.cnblogs.com/dmdoge/p/5500040.html
Copyright © 2011-2022 走看看