【发布时间】:2022-02-06 06:12:23
【问题描述】:
我是在 SQL 开发人员中使用的新 SQL 编码。
我有一个包含 4 列的表:患者 ID (ptid)、服务日期 (dt)、保险支付金额 (insr_amt)、自付费用金额 (op_amt)。 (见下表1)
我想做的是 (1) 使用“dt”列创建两列“start_dt”和“end_dt”,如果患者 ID 的日期没有间隔,则使用填充开始和结束日期患者 ID 的第一个和最后一个日期,但是如果患者 ID 中的服务日期存在差距,则为每个患者 ID 创建单独的开始和结束日期行,以及 (2) 将两个付款金额按患者 ID 相加在一组开始和结束日期访问中(见下表 2)。
在 SQL 开发人员中使用 SQL 代码运行此程序的方法是什么? 谢谢!
表 1:
| Ptid | dt | insr_amt | op_amt |
|---|---|---|---|
| A | 1/1/2021 | 30 | 20 |
| A | 1/2/2021 | 30 | 10 |
| A | 1/3/2021 | 30 | 10 |
| A | 1/4/2021 | 30 | 30 |
| B | 1/6/2021 | 10 | 10 |
| B | 1/7/2021 | 20 | 10 |
| C | 2/1/2021 | 15 | 30 |
| C | 2/2/2021 | 15 | 30 |
| C | 2/6/2021 | 60 | 30 |
表 2:
| Ptid | start_dt | end_dt | total_insr_amt | total_op_amt |
|---|---|---|---|---|
| A | 1/1/2021 | 1/4/2021 | 120 | 70 |
| B | 1/6/2021 | 1/7/2021 | 30 | 20 |
| C | 2/1/2021 | 2/2/2021 | 30 | 60 |
| C | 2/6/2021 | 2/6/2021 | 60 | 30 |
【问题讨论】:
标签: sql oracle date sum gaps-and-islands