【发布时间】:2016-05-12 16:24:50
【问题描述】:
我有一个 ID 数据库,其收入和开始/结束日期如下,但在给定的开始/结束日期范围内,我无法打破每个 ID 每月的收入。
表格数据示例如下:
ID | INCOME | START_DATE | END_DATE
1 | 2000 | 02/01/2016 | 05/31/2016
1 | 1500 | 12/01/2015 | 01/31/2016
2 | 1000 | 01/01/2016 | 04/30/2016
结果应该是:
ID | INCOME | MONTH
1 | 2000 | 05/2016
1 | 2000 | 04/2016
1 | 2000 | 03/2016
1 | 2000 | 02/2016
1 | 1500 | 01/2016
1 | 1500 | 12/2015
2 | 1000 | 04/2016
2 | 1000 | 03/2016
2 | 1000 | 02/2016
2 | 1000 | 01/2016
我将如何编写 Oracle SQL 以便能够有效地产生上述结果(假设表有数千个唯一 ID)?
【问题讨论】:
-
什么版本的Oracle数据库?
-
?当前的Oracle版本是12,你确定不是Oracle 3?要查找您的版本,请运行
select * from v$version; -
11.2.0.4.0 我相信,11g。对不起。
-
那么好消息 - 您可以使用收到的两个答案中的任何一个。如果您仔细研究它们,您将学习两种不同的技术,您将来可能会使用它们。是的,您的 Oracle 版本是 11.2,更具体地说是 11.2.0.4.0; 11g 是 Oracle 使用的营销名称,但无论何时发布它都有助于添加您使用的是 11.2 或更高版本,即 11.2.0.4。