SQL ORACLE按一个月内的所有天数分组

SQL ORACLE按一个月内的所有天数分组,sql,oracle,grouping,Sql,Oracle,Grouping,我有一个表,其中有两列。一列是时间戳,另一列是工时数量 我需要获得另一个包含两列的月份表。一个是月的第二天,另一个是月的第二天 我知道这很容易,但问题是,如果有一天没有任何劳动,那么争吵就不会出现。我需要那一行,日期和一个0为1 谢谢你的帮助 我现在得到的表格是 day labor 1 8 2 4 3 7 4 3 6 7 7 9 继续 如你所见,第5天没有出现,因为这一天没有分娩 我需要taht day显示为…5,人工0首先,您应该

我有一个表,其中有两列。一列是时间戳,另一列是工时数量

我需要获得另一个包含两列的月份表。一个是月的第二天,另一个是月的第二天

我知道这很容易,但问题是,如果有一天没有任何劳动,那么争吵就不会出现。我需要那一行,日期和一个0为1

谢谢你的帮助

我现在得到的表格是

day  labor
1      8
2      4
3      7
4      3
6      7
7      9
继续

如你所见,第5天没有出现,因为这一天没有分娩

我需要taht day显示为…5,人工0

首先,您应该在示例中生成2014年到2015年之间的日期范围,然后左键加入您的人工统计,shcematic示例:

--generating days
WITH days AS
 (SELECT DATE '2014-01-01' + LEVEL - 1 day1
    FROM dual
  CONNECT BY LEVEL <= DATE '2015-01-01' - DATE '2014-01-01')

SELECT day.day1, NVL(sum(labor.labor),0) labot_sum FROM days
LEFT JOIN labor ON trunc(labor.timestamp_col) = days.day1
GROUP BY days.day1
编辑

如果有整数天,则生成

SELECT LEVEL day1 FROM dual CONNECT BY LEVEL <= 365

您能提供一些示例数据和预期输出吗?您想只使用sql还是也可以使用pl/sql?我不能使用pl/sql Guneli,谢谢。我要添加的唯一一件事是使用SUMCOALESCElabor.labor,0,以便在几天内返回零小时,而不使用OP要求的人工。我想你想用天来代替一年中的几天,但我每次只需要一个月。我只能选择这个range@Madmartigan,所以你应该设置一个很棒的@Madmartigan如果我的短信能帮你,你能接受答案吗;谢谢我对这个问题还有另一个问题。现在我在源表中有另一列,表示区域是数字1,2,3,4,5,6。我必须将劳工分区域和天数分组。当我这样做的时候,没有劳动的日子就不会出现了。