2013-04-24 2 views
0

Я хочу получить идентификатор сотрудника, оставить разум, оставить тип и имя сотрудника для моей внутренней задачи отчета. Я написал 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 таблица содержит как «Оставьте запросы» и «Оставьте Отчисления» , Это похоже на систему с двойным входом, где отпускные отпуска увеличивают количество дней отпуска для сотрудника или категории сотрудников, в то время как просьбы о выезде уменьшают его.

Возможно, ваш запрос должен учитывать это различие, и вы также можете фильтровать другие поля, такие как состояние, поскольку некоторые из записей еще не могут быть проверены.

Глядя на декларации hr.holidays модели в 6.1, вы увидите несколько примечательных полей, которые могут быть использованы в запросе:

  • type: может быть Распределение ('add') представляет приращение или Запрос ('remove'), чтобы представить декремент
  • holiday_type: может быть Сотрудник ('employee'), в этом случае employee_id колонка указывает, какой сотрудник или Категория ('category'), в этом случае category_id столбец указывает, к какой категории
  • state: Новый ('draft'), Ожидание утверждения ('confirm'), Отказался ('refuse'), Ожидание второго утверждение ('validate1'), Утверждено ('validate'), Отменено ('cancel')
+0

Спасибо, Odony..но его отсортировали :-) –