-1

可能な解決策を見つけるために助けが必要です。私はこのクエリで立ち往生しました。

表1 -hs_hr_employee

  • 従業員番号
  • 従業員ID
  • emp_lastname
  • 参加日

表 2 - ohrm_leave_entitlement

  • 従業員番号
  • no_of_days decimal(19,15)
  • days_used decimal(8,4)
  • days_used
  • leave_type_id

これらのテーブルに参加して、参加日を取得し、0.5 追加で更新する必要があります。if difference( Current dt - Dt. of Joining) >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
    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 に答える