SQL金融行业项目:你每月消费多少?(累计额,链表,case when)

本文介绍了一个理财银行的SQL分析项目,旨在计算2016年1-3月的消费总金额,提取消费金额大于等于1288的客户信息,以及汇总各省分行的2016年3月消费金额。通过交易表、客户表和分行表的数据,使用SQL的筛选、分组、窗口函数和CASE WHEN语句等技巧进行数据处理。
摘要由CSDN通过智能技术生成

某理财银行有下面3个表。

交易表记录了每天交易的客户交易时间、客户号、消费类型和消费金额。其中,交易类型有两种值:消费和转账。

客户表记录了客户信息,包括客户号,客户名称和客户所属的银行分行号

 

分行号记录每个分行的信息,包括分行号、分行名称及对应上级分行。

 

该理财银行要求对客户及销售额分析报告,要求如下:

1.计算2016年1-3月的消费总金额,生成如下格式的查询结果

2.提取2016年3月消费金额大于等于1288的客户名单,并给出这些客户信息 

3.汇总各省分行(省分行下属支行也需要汇总至省分行)的2016年3月的总消费金额

【解题步骤】

观察三张数据表看出交易表和客户表通过“客户号”关联,客户表和银行分行对应表通过“分行号”有关联。

 1)交易表中的交易类型有两种(消费和转账),所以要对交易类型=消费 进行筛选。同时,要分析的是2016年的数据,所以也要对交易时间筛选。


select *
from 交易表
where 交易类型 = "消费" and year(交易时间) = 2016;

 2)对交易时间按格式分类(year(),month()),用case when 语句对交易时间进行判断,符合2016年1-3月的记录并显示金额,不符合显示空值。

select
     (case when year(交易时间) = 2016 and month(交易时间) = 1
           then 交易金额 else null end) as 2016年1月,
     (case when year(交易时间) = 2016 and month(交易时间) = 2
           then 交易金额 else null end) as 2016年2月,
     (case when year(交易时间) = 2016 and month(交易时间) = 3
           then 交易金额 else null end) as 2016年3月
from 交易表;

 

3)符合记录的交易金额求和,得出1-3月份总的消费额

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值