-1

我需要帮助来找出可能的解决方案。我坚持这个查询。

表格1 -hs_hr_employee

  • emp_number
  • 员工ID
  • emp_lastname
  • 加入日期

表 2 - ohrm_leave_entitlement

  • emp_number
  • no_of_days 十进制 (19,15)
  • days_used 十进制(8,4)
  • 使用天数
  • leave_type_id

我需要加入这些表并获得加入日期并添加 0.5 更新。如果差异(当前 dt- 加入的 Dt.)>10。

这是我的查询

 UPDATE ohrm_leave_entitlement
 SET no_of_days = no_of_days + 0.5
 WHERE 
 ( 
     ohrm_leave_entitlement.emp_number = hs_hr_employee.emp_number
     AND 
     hs_hr_employee.joined_date < DATE_SUB( NOW(), INTERVAL 10 DAY)
     AND
     leave_type_id=2
 ) 

但它不起作用..

4

3 回答 3

2
UPDATE  ohrm_leave_entitlement a
        INNER JOIN hs_hr_employee b
            ON a.emp_number = b.emp_number
SET     a.leave_type_id = a.leave_type_id + 0.5
WHERE   DATEDIFF(NOW(), b.joined_date) > 10
于 2013-04-26T05:57:40.370 回答
0

你可以试试下面:

UPDATE ohrm_leave_entitlement , hs_hr_employee
SET ohrm_leave_entitlement.leave_type_id = ohrm_leave_entitlement.leave_type_id + 0.5
WHERE ohrm_leave_entitlement.emp_number = hs_hr_employee.emp_number
AND hs_hr_employee.joined_date < DATE_SUB( NOW(), INTERVAL 10 DAY)
于 2013-04-26T06:01:00.953 回答
0

你可以使用这个:

   UPDATE ohrm_leave_entitlement
    SET leave_type_id = leave_type_id + 0.5
    WHERE  
     ohrm_leave_entitlement.emp_number IN (SELECT  hs_hr_employee.emp_number FROM hs_hr_employee 
    WHERE  hs_hr_employee.joined_date < DATE_SUB( NOW(), INTERVAL 10 DAY))
于 2013-04-26T06:01:45.070 回答