2013-04-24 54 views
0

我想爲我的內部報告目的獲取員工ID,離職原因,離職類型和員工姓名。我寫了一個SQL查詢來檢索這些數據,我也得到了一些重複。如何刪除OpenERP ver 6.1.1中的重複記錄

看來它缺少一些加盟/國外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

您的查詢似乎是正確的,但由於hr_holidays表包含兩個「休假申請」和「離開分配」也許你得到意想不到的效果。這就像複式系統,其中假期分配增加了員工或員工類別可用的假期天數,而請假則減少了假期。

你的查詢應該考慮到這個區別,你也可能想過濾其他字段,比如狀態,因爲有些記錄可能還沒有被驗證。

綜觀6.1 hr.holidays模型的聲明,你會看到,可以在查詢中使用的一些值得關注的領域:

  • type:可分配'add')來表示的增量或請求'remove')來表示減量
  • holiday_type:可僱員'employee'),在這種情況下employee_id列表示哪一個僱員,或者類別'category'),在這種情況下category_id列指示其中
  • 類別state'draft'),等待審批'confirm'拒絕'refuse'), 等待第二批准'validate1'),批准'validate'),取消'cancel'
+0

謝謝Odony ..現在排序:-) – 2013-04-24 08:56:35