Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgres sql 8.4分别使用时差和日期差_Sql_Postgresql 8.4 - Fatal编程技术网

Postgres sql 8.4分别使用时差和日期差

Postgres sql 8.4分别使用时差和日期差,sql,postgresql-8.4,Sql,Postgresql 8.4,我有这个问题,我不能解决它,因为我认为这在sql中是不可能的 我有这张桌子 Shedule id_emp Name `time initial` time end 1 juan` 09:00` 12:00 2 Francisco 10:00 11:30 3 Sebastian 11:00 15:00 6

我有这个问题,我不能解决它,因为我认为这在sql中是不可能的

我有这张桌子

Shedule
    id_emp    Name       `time initial` time end   
    1         juan`       09:00`          12:00
    2        Francisco    10:00           11:30
    3        Sebastian    11:00           15:00
    6        Roberto      15:00           18:00


Suspension
id_emp          suspension_initial     suspension_end
1                    2013-06-01           2013-06-01
2                    2013-06-01           2013-06-03
3                    2013-06-03           2013-06-04 
6                    2013-06-01           2013-06-01
2                    2013-07-01           2013-07-01
3                    2013-07-05           2013-07-05
1                    2013-07-06           2013-07-06
如果我有一天的停职时间是一个小时的单位,我想知道工作时间是多少小时?如果我有一天的停职时间是多少小时?例如:Juan每天工作3小时,他在6月有一天的停职时间,7月有一天的停职时间。所以我假设在一个月内他每天工作3*20小时-6月3小时和7月3小时 我怎样才能得到这个结果

id_emp name `       June-2013               July-2013
1       Juan           57 (hours Worked)        57 (hours Worked)
2       Francisco      24 (hours worked)        27 (hours worked)
3       Sebastián
6       Roberto
下面是您可以尝试的查询


3*20小时*日工作时间-6月3小时=47小时?我想应该是57。特纳克斯,你有解决办法吗=你试过什么?你在哪里卡住了?我删除了所有的查询,但我卡住了,因为时间表没有日期和解除暂停是的,所以我不明白我如何比较一个月的暂停和一个正常的月有人能帮我吗?谢谢!谢谢,但2013年7月罗伯托·尤因给我带来了什么?我改变了我的成绩,请原谅我
select EmpHrs.ID_EMP,
       EmpHrs.Name,
       (
        (EmpHrs.NOOFHRS*20)-
        (EmpHrs.NOOFHRS*
          JuneSuspension.MONTHSUSPENSION)
       )  as "June-2013",
       (
        (EmpHrs.NOOFHRS*20)-
        (EmpHrs.NOOFHRS*
          JulySuspension.MONTHSUSPENSION)
       )  as "July-2013"

from 
(
select ID_EMP,NAME,
       Extract(Hours from time_end-time_initial)+
       Extract(Minutes from time_end-time_initial)/60 as NoOfHrs
  from schedule
) EmpHrs
Left join
(select ID_EMP,to_char(to_timestamp (Extract(Month from suspension_initial)::text, 'MM'),'Mon') as MonthIni,(suspension_end::date - suspension_initial::date)+1 MonthSuspension
from suspension
where Extract(Month from suspension_initial) = 6) JuneSuspension
On JuneSuspension.ID_EMP = EmpHrs.ID_EMP
Left join
(select ID_EMP,to_char(to_timestamp (Extract(Month from suspension_initial)::text, 'MM'),'Mon') as MonthIni,(suspension_end::date - suspension_initial::date)+1 MonthSuspension
from suspension
where Extract(Month from suspension_initial) = 7) JulySuspension
On JulySuspension.ID_EMP = EmpHrs.ID_EMP