【发布时间】:2020-01-17 13:50:47
【问题描述】:
我有一个 Oracle 数据库,我正在尝试按日期查询多个日期字段,并按月和年获取总计作为输出。
这是我最初的查询。这只是得到我想要输入的日期的内容。
SELECT COUNT(*) as Total
FROM Some_Table s
WHERE (s.Start_DATE <= TO_Date ('2019/09/01', 'YYYY/MM/DD'))
AND (s.End_DATE IS NULL OR (s.End_DATE > TO_Date ('2019/08/31', 'YYYY/MM/DD')))
我想得到一个输出,它可以让我按月和年计算。计数将是 Start_DATE(月初)和 End_DATE(月底)之间的数字。
我做不到
编辑:这是来自另一个查询的示例,与上述查询无关。我只是想提供一个我不能做的例子,因为我有两个单独的日期字段。下面的示例说明了我从单个日期字段中提取月份和年份的知识。很抱歉造成混乱。
SELECT extract(year from e.DATE_OCCURRED) as Year
,to_char(e.DATE_OCCURRED, 'MONTH') as Month
,count (*) as totals
因为 Start_DATE 和 End_DATE 是两个独立的字段。
任何帮助将不胜感激
编辑:示例为
----------------------------------
| Name | Start_DATE | End_DATE |
----------------------------------
| John | 01/16/2018 | 07/09/2019 |
| Sue | 06/01/2015 | 09/01/2018 |
| Joe | 04/06/2016 | Null |
----------------------------------
我想知道按月和按年工作的工人总数。希望输出看起来像。
------------------------
| Year | Month | Total |
------------------------
| 2016 | Aug | 2 |
| 2018 | May | 3 |
| 2019 | Aug | 2 |
------------------------
所以我知道我有两个工人在 2016 年 8 月工作,三个在 2018 年 5 月工作。
【问题讨论】:
-
样本数据和期望的结果会有所帮助。
-
什么是
e,它的occurred_date与s.start_date和s.end_date有什么关系?