【发布时间】:2021-12-13 22:46:54
【问题描述】:
问题:基于以下返回单个结果集
对于报告表 (rdate) 中的每个日期,将早于或等于 rdate(加上 t1 和 t2)的最新事务表 (tdate) 返回为 sdate,s1,s2
对于报告表 (rdate) 中的每个日期,将晚于或等于 rdate(加上 t1 和 t2)的最早事务表 (tdate) 返回为 edate,e1,e2
已尝试 TOP 1 / APPLY / LEAD& LAG 代码,但无法获得所需的结果。
感谢任何建议。谢谢
报告表
| rdate |
|---|
| 06/01/2021 |
| 26/01/2021 |
| 15/02/2021 |
交易表
| tdate | t1 | t2 |
|---|---|---|
| 01/01/2021 | 17 | 6 |
| 05/01/2021 | 5 | 9 |
| 09/01/2021 | 8 | 12 |
| 19/01/2021 | 15 | 11 |
| 20/01/2021 | 12 | 8 |
| 25/01/2021 | 9 | 1 |
| 26/01/2021 | 8 | 17 |
| 30/01/2021 | 7 | 6 |
| 08/02/2021 | 6 | 21 |
| 22/02/2021 | 14 | 5 |
| 27/02/2021 | 11 | 4 |
需要结果
| rdate | sdate | s1 | s2 | edate | e1 | e2 |
|---|---|---|---|---|---|---|
| 06/01/2021 | 05/01/2021 | 5 | 9 | 09/01/2021 | 8 | 12 |
| 26/01/2021 | 26/01/2021 | 8 | 17 | 26/01/2021 | 8 | 17 |
| 15/02/2021 | 08/02/2021 | 6 | 21 | 22/02/2021 | 14 | 5 |
【问题讨论】:
标签: sql-server sql-server-2019