我在将数据从一个表迁移到另一个表时遇到了一些问题。我使用的是Oracle 11数据库。在我的问题中,一个表列出了一些在特定日期范围(开始日期和结束日期)中有效的值。应将数据迁移到的另一个表应该每月说明这些值(MMYYY)。因此,对于特定的时间范围(例如2010年1月1日至2010年12月31日),应每月说明数据(01 / 2010,102 / 2010,...,2010年7月)。我试图为这种情况创建一个合适的sql insert语句,但我没有成功。
示例:
表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/201,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
有最好的做法吗?或者有人有想法吗?谢谢你的建议!