WORK_YEARS字段是什么类型?还有你这句根本就是
UPDATE LANWAN.HR_J_EMPLOYEESALARY L
SET L.MONEY = (SELECT 2*A.WORK_YEARS*A.WORK_YEARS
FROM LANWAN.HR_J_EMPLOYEEINFORM A
WHERE A.WORKER_CODE = L.WORKER_CODE)
WHERE L.PUT_YEAR = 2005
AND L.PUT_MONTH = 01
AND L.SALARY_TYPE_CODE = 0001
AND L.INCOME_ITEM_CODE = 0001
UPDATE LANWAN.HR_J_EMPLOYEESALARY L
SET L.MONEY = (SELECT 2*A.WORK_YEARS*A.WORK_YEARS
FROM LANWAN.HR_J_EMPLOYEEINFORM A
WHERE A.WORKER_CODE = L.WORKER_CODE)
WHERE L.PUT_YEAR = 2005
AND L.PUT_MONTH = 01
AND L.SALARY_TYPE_CODE = 0001
AND L.INCOME_ITEM_CODE = 0001
((SELECT A.WORK_YEARS
FROM LANWAN.HR_J_EMPLOYEEINFORM A
WHERE A.WORKER_CODE = L.WORKER_CODE) *
(SELECT B.WORK_YEARS
FROM LANWAN.HR_J_EMPLOYEEINFORM B
WHERE B.WORKER_CODE = L.WORKER_CODE) * 2)
这一句是为了测试可不可以从两个表里选择,我当然知道可以直接在select语句里乘,像没钱的日子说的,我只是为了方便,A和B用了一个表而已。
关键的问题在于这个数字, 为什么 2* 放前面就行,而 *2放后面就不行呢