北京农商银行 测试

 

 

 

 

 

北京农商银行 测试

 

第一题:

SELECT 
T2.ACCT_ID ,  --账户号
T2.OPN_BRANCH, --开户机构
T1.ACCT_TYPE, --账户类别
T1.BAL , --账户余额
(SELECT AVG(T3.BAL) FROM ODM.T_ACCT T3 , --账户基本表
                                ODM.T_ACCT_INFO T4 --账户信息表
                                WHERE T3.ACC_ID = T4.ACCT_ID  --账户号关联
                                AND T2.OPN_BRANCH = T4.OPN_BRANCH  --同一开户机构
                                AND T1.ACCT_TYPE = T3.ACCT_TYPE --同一账户性质
                                AND T4.ACCT_STS = '01' --账户状态正常
                                )  --平均余额
FROM 
ODM.T_ACCT T1 , --账户基本表
ODM.T_ACCT_INFO T2 --账户信息表
WHERE T1.ACC_ID = T2.ACCT_ID  --账户号关联

 

 

第二题:交易日期的参数可以放到两个子查询里,这样更合理些

SELECT T3.ACCT_ID , T3.TRANS_BAL,AVG(T2.TRANS_BAL) OVER(PARTITON BY T2.ACCT_ID)
FROM
(SELECT 
T1.TRANS_NO , --主机流水号
T1.ACCT_ID , --交易账号
T1.TRANS_BAL, --交易金额
T1.TRANS_TIME,--交易时间
ROW_NUMBER() OVER(PARTITION BY T1.ACCT_ID , T1.TRANS_TIME --同一账户,同一天交易
       ORDER BY T1.TRANS_NO ASC   --按照交易流水号排序
        ) AS CN --获取每个账户交易的序号
FROM ODM.T_TRANS_INFO T1  --交易信息表
WHERE  T1.TRANS_TIME = @交易日期
) T2  --所有交易,
(SELECT 
T1.TRANS_NO , --主机流水号
T1.ACCT_ID , --交易账号
T1.TRANS_BAL, --交易金额
T1.TRANS_TIME,--交易时间
ROW_NUMBER() OVER(PARTITION BY T1.ACCT_ID , T1.TRANS_TIME --同一账户,同一天交易
       ORDER BY T1.TRANS_NO ASC   --按照交易流水号排序
        ) AS CN --获取每个账户交易的序号
FROM ODM.T_TRANS_INFO T1  --交易信息表
WHERE  T1.TRANS_TIME = @交易日期
) T3  --当前查询交易
 
WHERE T2.ACCT_ID = T3.ACCT_ID --账户相同
AND T2.TRANS_TIME = T3.TRANS_TIME --交易时间
AND T3.CN >= T2.CN - 2 --当前笔数的前两笔
AND T3.CN <= T2.CN + 2 --当前笔数的后两笔为范围
AND T3.TRANS_NO = @交易流水

相关文章:

  • 2021-10-13
  • 2021-08-19
  • 2021-08-07
  • 2021-09-12
  • 2021-04-30
  • 2021-06-18
  • 2021-11-17
猜你喜欢
  • 2021-11-06
  • 2021-12-03
  • 2022-12-23
  • 2022-02-12
  • 2021-05-23
  • 2021-05-27
  • 2021-09-27
相关资源
相似解决方案