【发布时间】:2021-12-24 03:03:22
【问题描述】:
有 2 张桌子 -
- 包含 order_number、item_number 和 sale_date 详细信息的销售表。
- 包含 item_number、promotion_start_date 和 Promotion_end_date 详细信息的促销表。
促销活动贯穿全年,持续几天。 需要在没有促销活动时提取已售商品列表。
只需要提取之间的订单号
- “第一个promotion_end_date”和“第二个promotion_start_date”然后
- “第二个promotion_end_date”和“第三个promotion_start_date”然后
- “第三次promotion_end_date”和“第四次promotion_start_date”等等。
示例表如下-
1) Promotions 表:(当promotion_end_date 为“Null”时,promotion 仍为“ACTIVE”)
| item_number | promotion_start_date | promotion_end_date |
|---|---|---|
| ABC0001 | 12-31-2020 | 01-19-2021 |
| ABC0001 | 03-01-2021 | 03-31-2021 |
| ABC0005 | 02-05-2021 | 03-01-2021 |
| ABC0002 | 06-01-2021 | 07-31-2021 |
| ABC0001 | 09-31-2021 | 11-05-2021 |
| ABC0001 | 11-08-2021 | Nil |
2) 销售表:
| order_number | item_number | sale_date |
|---|---|---|
| 110000011 | ABC0001 | 01-18-2021 |
| 110000012 | ABC0001 | 01-31-2021 |
| 110000013 | ABC0002 | 06-30-2021 |
| 110000014 | ABC0001 | 07-31-2021 |
| 110000015 | ABC0005 | 04-05-2021 |
| 110000016 | ABC0001 | 10-05-2021 |
| 110000017 | ABC0001 | 12-01-2021 |
| 110000018 | ABC0002 | 08-30-2021 |
| 110000019 | ABC0001 | 04-01-2021 |
| 110000020 | ABC0001 | 07-30-2021 |
| 110000021 | ABC0005 | 02-28-2021 |
| 110000022 | ABC0001 | 11-06-2021 |
3) 预期结果:
| order_number | item_number | sale_date |
|---|---|---|
| 110000012 | ABC0001 | 01-31-2021 |
| 110000014 | ABC0001 | 07-31-2021 |
| 110000015 | ABC0005 | 04-05-2021 |
| 110000017 | ABC0001 | 12-01-2021 |
| 110000018 | ABC0002 | 08-30-2021 |
| 110000019 | ABC0001 | 04-01-2021 |
| 110000020 | ABC0001 | 07-30-2021 |
| 110000022 | ABC0001 | 11-06-2021 |
【问题讨论】:
标签: sql sql-server date range date-range