如何删除OpenERP ver 6.1.1中的重复记录

时间:2013-04-24 03:21:32

标签: postgresql openerp

我希望获得员工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

1 个答案:

答案 0 :(得分:1)

您的查询看起来是正确的,但也许您会得到意外的结果,因为hr_holidays表包含“请假请求”和“保留分配”。这就像一个复式系统,其中休假分配增加了员工或员工类别可用的休假天数,而休假请求则减少了休假天数。

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

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

  • type:可以分配'add')来表示增量,或者请求'remove')来表示增量递减
  • holiday_type:可以是员工'employee'),在这种情况下,employee_id列表示哪个员工或类别'category'),在这种情况下,category_id列表示哪个类别
  • state'draft'),等待批准'confirm'),拒绝'refuse'),等待第二次批准'validate1'),已批准'validate'),已取消'cancel'