mysql - 根据不同列id获取日期差异

标签 mysql

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

  • 每个员工都有一个唯一的 ID
  • 取决于您作为 Employee1 或 Employee2 工作的周
  • 休息日的计算从第 2 周开始,因此如果没有休息日,则默认数字为 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

最佳答案

数据结构不好,但我想你必须处理它。您需要为每个员工获取一列,可以使用 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;

关于mysql - 根据不同列id获取日期差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23298803/

相关文章:

android - 如何为报价应用程序设计 Firebase 数据库?

php - Laravel 5.5 - 如何使用名字和姓氏登录?

php - 在 Symfony2 中创建数据库

php - select query 锁表,为什么会这样

mysql - 检查是否有新行添加到 DataGridView

mysql - Zend 框架中的 ORDER BY FIELD(orderNum, 1,2,0)

MySQL WHERE 不是非常慢

mysql - 在我的 RAILS 应用程序中将 2 个 SELECT 合并为一个 SELECT

mysql - 在 mysql 数据库表中有大部分未使用的大列是不好的做法吗?

php - 工作时间跨越午夜