我希望获得员工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
答案 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'
)