写代码一般是收费服务,这才先给你免费弄一次,希望你可以以后自己学习一下写SQL
>>>>>>>>>>华丽的分割线<<<<<<<<<
正文
>1.你这个表做的其他几个表以后还有可能继续,但是你的养老表直接是横向排列的,这以后在扩展呢?
在你现在的基础上,我给你大致的写写哈
- with dbj as(
- SELECT 人编号,SUM(每月金额*发放月数) as 低保金总额
- FROM "低保金" group by 人编号),
- ylj as(
- select 人编号, SUM(月收入2018*收入月2018+月收入2019*收入月2019) as 养老金总额
- from "养老金" group by 人编号
- ),
- tkgyj as(
- select 人编号, SUM(月收入金额*收入月份) as 特困供养金总额
- from "特困供养金" group by 人编号
- ),
- qtzyxsr as(
- select 人编号,SUM(年收入金额) as 其他转移性收入总额
- from "其他转移性收入" group by 人编号
- ),
- cte as(
- SELECT 信息总表.ID,信息总表.户编号, 信息总表.人编号,信息总表.姓名,信息总表.人数,信息总表.与户主关系,dbj.低保金总额
- from "信息总表" left join dbj
- on 信息总表.人编号=dbj.人编号
- ),
- cte1 as(
- SELECT cte.ID,cte.户编号, cte.人编号,cte.姓名,cte.人数,cte.与户主关系,cte.低保金总额,ylj.养老金总额
- from cte left join ylj
- on cte.人编号=ylj.人编号
- ),
- cte2 as(
- SELECT cte1.ID,cte1.户编号, cte1.人编号,cte1.姓名,cte1.人数,cte1.与户主关系,cte1.低保金总额,cte1.养老金总额,tkgyj.特困供养金总额
- from cte1 left join tkgyj
- on cte1.人编号=tkgyj.人编号
- )
- SELECT cte2.ID,cte2.户编号, cte2.人编号,cte2.姓名,cte2.人数,cte2.与户主关系,cte2.低保金总额,cte2.养老金总额,cte2.特困供养金总额,qtzyxsr.其他转移性收入总额
- from cte2 left join qtzyxsr
- on cte2.人编号=qtzyxsr.人编号
复制代码 效果如下
附件为工程文件
|