0

我想为我的内部报告目的获取员工 ID、休假原因、休假类型和员工姓名。我写了一个 SQL 查询来检索这些数据,我也得到了一些重复的数据。

似乎缺少一些加入/外国ID映射部分

select
   h.id as employee_id,h.name as leave_reason,
   s.name,r.name as res_name
from 
   hr_holidays_status s,
   hr_holidays h,
   hr_employee e,
   resource_resource r
where 
   h.employee_id=e.id and 
   h.holiday_status_id=s.id and
   e.resource_id=r.id
order by 
   resource_id
4

1 回答 1

1

您的查询看起来是正确的,但您可能会得到意想不到的结果,因为该hr_holidays表同时包含“离开请求”和“离开分配”。这就像一个复式系统,休假分配增加了员工或员工类别的休假天数,而休假请求减少了它。

您的查询可能应该考虑到这种区别,并且您可能还希望过滤其他字段,例如状态,因为某些记录可能尚未验证。

查看 6.1 中hr.holidays模型的声明,您会看到一些可以在查询中使用的值得注意的字段:

  • type: 可以是Allocation ( 'add') 表示递增,也可以是Request ( 'remove') 表示递减
  • holiday_type:可以是Employee'employee'),在这种情况下,employee_id列表示哪个员工,或Category'category'),在这种情况下,category_id列表示哪个类别
  • state新建'draft')、等待批准'confirm')、拒绝'refuse')、等待二次批准'validate1')、批准'validate')、取消'cancel'
于 2013-04-24T08:54:32.417 回答