数据库提数语句
来源:互联网 发布:辅助数据库已初始化 编辑:程序博客网 时间:2024/06/06 11:50
需求发了个任务给我,是对数据库提数,刚开始对于需求内容没有看详细,导致整个提数过程很是漫长繁琐。
要求:配合北京**委专项检查,提取一产品、二产品,两个产品的业务一及业务二的数据
提取内容:
业务一:分公司名称、产品名称、业务受益人名称、业务单号、业务标识号
业务二: 分公司名称、产品名称、业务受益人名称、业务理算号、业务单号、业务标识号
业务一的条件:业务一的开始时间:2016-1-1~2016-12-31,2017-1-1~2017-11-30
业务二的条件:业务二的开始时间:2016-1-1~2016-12-31,2017-1-1~2017-11-30
分析:北京地业务一及业务二在规定时间范围下的一产品及二产品的数据,则根据业务及时间的不同分别提取四个文档数据
1.一业务2016年数据
2.一业务2017年数据
3.二业务2016年数据
4.二业务2017年数据
提数文档字段如下:
分公司名称、一产品名称+二产品名称、一业务受益人名称、一业务单号、一业务标识号
分公司名称、一产品名称+二产品名称、二业务受益人名称、二业务理算号、二业务单号、二业务标识号
提数sql分析:
提数即查询出表中数据,并导出结果,基本sql:select …1…from…2…where …3…order by…4…
1:需要查询出的字段:
业务一:分公司名称、产品名称、业务受益人名称、业务单号、业务标识号
业务二: 分公司名称、产品名称、业务受益人名称、业务理算号、业务单号、业务标识号
2:相关表格:
保单基本信息表A(别名a)、受益人信息表B(别名b)、系统标识物信息C(别名c)、产品表D(别名d)、产品表E(别名e)、定损清单表F(别名f)、估损单J(别名 j)、赔付单H(别名h)、赔案I(别名i)
3:查询条件
业务一:
保单基本信息表与受益人信息表以根节点相关联:a.topactualid=b.topactualid
受益人信息表的事实id是系统标识物信息表的父节点:b.actualid=c.parentactualid
保单号不能为空:a.policy_no is not null
录单号不取模块二的数据:a.proposal_no not like"APP%"(系统包含两大模块,一模块与二模块的录单号皆保存在同一张表中,所以取数时需排除模块二的录单号)
使用 trunc()函数截取时间:trunc(a.start_date,'DD') between date'2016-01-01' and date'2016-12-31',业务的开始时间范围
分公司的代码:a.branch_code='1010100';
产品范围:a.product_code in ('10000000','10000001')
业务二:
定损清单表F的估损单id与估损单J的估损单id相关联:f.estimated_loss_bill_id=j.estimated_loss_bill_id
估损单J的事故id与赔付单H的事故id相关联:h.accident_id=j.accident_id
赔付单H的事故id与赔案I(别名i)的事故id相关联:i.accident_id=h.accident_id
分公司的代码:a.branch_code='1010100';
产品范围:a.product_code in ('10000000','10000001')
使用 trunc()函数截取时间:trunc(h.start_date,'DD') between date'2016-01-01' and date'2016-12-31',业务的开始时间范围
4:排序要求
根据分公司、保单号、事实id排序
提数相关表分析:
保单基本信息表A(别名a):A表保存的是用户录入业务的数据信息(皆以code形式保存)
受益人信息表B(别名b):B表保存的是受益人的基本数据信息,其中包含提数要求中的受益人名称
产品表D(别名d):产品名称与保单产品代码关联
产品表E(别名e):分公司视图表中的分公司名称与保单基本信息表中分公司代码关联
定损清单表F(别名f)、估损单J(别名j)、赔付单H(别名h)、赔案I(别名i)
提数语句:
业务一:
select
(select e.branch_name from E e where e.branch_code = a.branch_code) 分公司,
(select d.name from D d where d.productcode=a.product_code) 产品名称,
b.insured_name 受益人名称,
a.policy_no 保单号,
c.mark_code 标识号
from A a,B b,C c
where a.topactualid=b.topactualid and b.actualid=c.parentactualid
and a.policy_no is not null and a.proposal_no not like 'APP%'
and trunc(a.start_date,'DD') between date'2016-01-01' and date'2016-12-31' --此处时间可根据需求要求更改
and a.branch_code = '1010100'
and a.product_code in('15040100','15040300')
order by a.branch_code,a.policy_no,c.actualid;
业务二:
select
(select e.branch_name from E e where e.branch_code = c.branch_code) 分公司,
(select d.name from D d where d.productcode=c.product_no) 产品名称,
f.insurant_name 受益人名称,
h.payment_plan_no 理赔号,
i.policy_no 保单号,
f.plot_no 标识号
from F f,J j,H h,I i
where f.estimated_loss_bill_id=j.estimated_loss_bill_id
and h.accident_id=j.accident_id
and i.accident_id=h.accident_id
and i.product_no in('15040100','15040300')
and i.branch_code='1010100'
and trunc(h.payment_audit_date,'DD') between date'2016-01-01' and date'2016-12-31'
数据库中执行sql,导出为.csv文件即可。
重点:了解表与表之间的关联
- 数据库提数语句
- oracle数据库中查询连接数的实用sql语句
- Oracle数据库获取当前用户连接数的sql语句
- SQL语句查询数据库表占用和记录数
- 数据库更新语句返回更新条目数不正确问题备忘
- sql语句读取oracle数据库表的张数及表的字段数
- 数据库语句
- 数据库语句
- 数据库语句
- 数据库语句
- 数据库语句
- 数据库语句
- 数据库语句
- 数据库语句
- 数据库语句
- 数据库语句
- 数据库语句
- 数据库语句
- 利用BS爬取逐浪网多本小说
- 风控
- ImportError: No module named caffe
- Shadowsocks-qt5+gfwlist(genpac)设置Deebin(Linux)PAC全局代理
- [LeetCode]547. Friend Circles
- 数据库提数语句
- 谈谈 Idea编辑器和SpringBoot轻量框架 初级开发者如何让其启动和访问
- 561. Array Partition I
- Java中==和equal有什么区别
- 《人性的弱点》第二章 获取喜爱的十二大技巧:读后感
- 任务分解
- android app跳转到微信
- Jackson 时间格式化输入输出
- 人脸识别之端到端框架(六)--SphereFace