2016-07-21 6 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_members 테이블의 모든 행의 합계에 대해 expense_claims의 모든 행을 설정합니다. 이제 expense_claims 열은 모두 959입니다. – javaprogrammer

관련 문제