我有2个表,主表和详细信息,都包含与事件相关的日期。第一个包含主记录的开始和结束日期。第二个包含各种间隙,这些间隙也有一个开头和一个终点,与主记录有关,并且在开始和结束日期之间。 我可以成功计算主记录开始和结束之间的总天数,但是我没有看到如何在详细信息表中汇总“关闭日期”的总和并按月分组。我的意思是:
主表
Start date (MM/DD/YYYY): 01/01/2015
End date (MM/DD/YYYY): 01/25/2015
总天数:25
详细信息表
Start date (MM/DD/YYYY) | End date (MM/DD/YYYY) :
01/02/2015 | 01/05/2015
01/09/2015 | 01/15/2015
01/18/2015 | 01/19/2015
“休息日”总数:13
数据库环境是Oracle 11g。 你能救我吗?
答案 0 :(得分:1)
试试这个:
select sum(End_date-Start_date+1) from details_table;
总和功能会将所有日期的总和相加,这样可以为您提供所需的13个“休息日”。
如果你想添加start_date / end_date条件,你可以这样做。
select sum(End_date-Start_date+1) from details_table
where Start_date>=to_date('01/01/2015','mm/dd/yyyy')
and End_date<=to_date('01/25/2015','mm/dd/yyyy');