【发布时间】:2018-07-01 06:44:50
【问题描述】:
我在将数据从一个表迁移到另一个表时遇到了一些问题。我使用的是 Oracle 11 数据库。在我的问题中,一张表说明了一些在特定日期范围内有效的值(开始日期和结束日期)。数据应迁移到的另一个表应说明每月的这些值 (MMYYY)。因此,对于特定的时间范围(例如 2010 年 1 月 1 日至 2010 年 12 月 31 日),数据应按月说明(01/2010、02/2010、...、31/2010)。我试图为这种情况创建一个合适的 sql 插入语句,但我没有成功。
例子:
表 1 具有以下属性:ID (PK)、START_DATE、END_DATE、VALUE
表 2 具有以下属性:ID (PK)、MONTH、YEAR、VALUE
表 1:
- ID = 1,START_DATE = 01/01/2010,END_DATE = 31/12/2015,VALUE = 5
- ID = 2,START_DATE = 01/01/2012,END_DATE = 31/12/2013,VALUE = 10
- ID = 3,START_DATE = 01/01/2018,END_DATE = 31/12/2020,VALUE = 15
这些条目在新表中应如下所示:
表 2:
- ID = 1,MONTH = 01,YEAR = 2010,VALUE = 5
- ID = 1,MONTH = 02,YEAR = 2010,VALUE = 5
- ID = 1,MONTH = 03,YEAR = 2010,VALUE = 5
- ...
- ID = 1,MONTH = 12,YEAR = 2015,VALUE = 5
- ID = 2,MONTH = 01,YEAR = 2012,VALUE = 10
- ID = 2,MONTH = 02,YEAR = 2012,VALUE = 10
- ID = 2,MONTH = 03,YEAR = 2012,VALUE = 10
- ...
- ID = 2,MONTH = 12,YEAR = 2013,VALUE = 10
- ID = 3,MONTH = 01,YEAR = 2018,VALUE = 15
- ID = 3,MONTH = 02,YEAR = 2018,VALUE = 15
- ID = 3,MONTH = 03,YEAR = 2018,VALUE = 15
- ...
- ID = 3,MONTH = 12,YEAR = 2020,VALUE = 15
是否有最佳实践方法来做到这一点?或者有人有想法吗?感谢您的建议!
【问题讨论】:
标签: sql database oracle date migration