SQL ORACLE按一个月内的所有天数分组
我有一个表,其中有两列。一列是时间戳,另一列是工时数量 我需要获得另一个包含两列的月份表。一个是月的第二天,另一个是月的第二天 我知道这很容易,但问题是,如果有一天没有任何劳动,那么争吵就不会出现。我需要那一行,日期和一个0为1 谢谢你的帮助 我现在得到的表格是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首先,您应该
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。我必须将劳工分区域和天数分组。当我这样做的时候,没有劳动的日子就不会出现了。