根据不同的列ID获取日期差异

时间:2014-04-25 16:48:16

标签: mysql

我有一个employee数据库,向我展示同行一起工作的几个员工, 下周我需要知道员工有多少休息日......

  • 每位员工都有一个唯一的身份证件
  • 取决于您作为Employee1或Employee2工作的周数
  • 休息日的计算从第2周开始,因此如果没有restDay,则9999是默认数字

所以,让我们以id为2的员工为例,在第1周他作为emp2工作,但下周他将作为emp1工作。我需要获得休息日,在这种情况下,它将用于emp1 ......

我的数据库中的列是

 1. id
 2. employee1
 3. employee2
 4. week
 5. emp1_restDay
 6. emp2_restDay
 7. date_time

db example

1 个答案:

答案 0 :(得分:0)

数据结构不好,但我想你必须处理它。您需要为每位员工提供一列,您可以使用union all

执行此操作
select employee, sum(restDay)
from ((select id, week, employee1 as employee, emp1_restDay as restDay, datetime
       from table t
      ) union all
      (select id, week, employee2 as employee, emp2_restDay as restDay, datetime
       from table t
      )
     ) t
group by employee;