【发布时间】:2016-11-11 18:20:50
【问题描述】:
查询:
select sum((out_time+0) - (in_time+0))*24 man_hours
from emp a,time_sheet b
where a.SUPERVISOR='43561'
and a.EMP_ID=b.EMP_ID;
表中的样本数据
emp_id in_time out_time
40716 08-07-2016 09:00 08-07-2016 18:00
40716 07-07-2016 09:00 07-07-2016 18:00
40716 06-07-2016 09:00 06-07-2016 18:00
60383 06-07-2016 09:00 06-07-2016 18:00
60383 07-07-2016 09:00 07-07-2016 18:00
41223 07-07-2016 09:00 07-07-2016 18:00
41223 08-07-2016 09:00 08-07-2016 18:00
结果:与上述查询的差异总和为 45
每行时间相差9小时。
要求:我只想 8小时应该是其他值。
当前 9*5= 45,需要 8*5 = 40 和额外 5
我尝试了解码,我得到了一些奇怪的结果,实际上我没有想到任何想法。以正确的方式指出会有所帮助。 谢谢
【问题讨论】:
-
这对我来说不太清楚。您能以表格的形式向我们展示示例输入和输出吗?
-
添加了一些示例数据。感谢您调查它。 :)
-
你想要什么输出?
-
如果我及时总结所有差异,那么我得到 63,即 7 行 * 9 差异 = 63,我需要 7 行 *8 并且 >8 应该作为其他值收集。比如 val a=56 和 val b=7。所以63小时应该以这种方式分手。希望理解。
标签: sql oracle plsql oracle11g oracle10g