2016-07-21 18 views
1

このsqlクエリはデータベースを更新せず、エラーを返します。助言がありますか?何らかの理由でデータベースが更新されない

    PreparedStatement ps10 = con.prepareStatement("UPDATE payroll_system.payslip SET hours_worked = (SELECT SUM(Hours) FROM payroll_system.monthly_timesheet WHERE employeeID=?) WHERE employeeID=?"); 
        ps10.setString(1, employee_id); 
        ps10.setString(2, employee_id); 
        ps10.executeUpdate(); 

monthly_timesheetテーブル:

enter image description here

給与明細テーブル:

enter image description here

+1

ため

 "INSERT INTO payroll_system.payslip(expense_claims) SELECT SUM(expense) FROM payroll_system.expense_mast" 

を使用しています。あなたの 'WHERE'句はあなたの' SELECT'ステートメントの後になければなりません – Nicarus

答えて

0
Insert don't have where clause 
"INSERT INTO payroll_system.payslip(expense_claims) 
WHERE employeeID=? 
SELECT SUM(expense) FROM payroll_system.expense_master" 

結局、あなたはアップデートを探していますか?

または `INSERT`文が単に間違っていることを更新

PreparedStatement ps9 = con.prepareStatement("UPDATE payroll_system.payslip 
    SET expense_claims = (SELECT SUM(Expense) 
    FROM payroll_system.expense_master 
    WHERE employeeID=?) WHERE employeeID=?"); 

    ps9.setString(1, employee_id); 
    ps9.setString(2, employee_id); 
    ps9.executeUpdate(); 
+0

更新の方法を教えてください。 :) where節を使用して – javaprogrammer

+0

私は答えを更新しました。 – scaisEdge

+0

うーん、これはうまくいきませんでした。 expense_claimsのすべての行を、expense_master表のすべての行の合計に設定します。今expense_claims列はすべて959です。 – javaprogrammer

関連する問題