update aset??? a.job_lvl=case when a.job_lvl+age1>b.job_lvl then b.job_lvl else a.job_lvl+age1 endFrom?? (select emp_id,job_id,job_lvl,case when dateadd(year,datediff(year,hire_date,getdate()),hire_date)>hire_date then datediff(year,hire_date,getdate()) else datediff(year,hire_date,getdate())-1 end age1, hire_date from employee) a,(select job_id,max(job_lvl) job_lvl from employee group by job_id) bwhere a.job_id=b.job_id
這個更新結(jié)果,與題目要求結(jié)果不一樣,下面附查詢結(jié)果,這個需要加什么條件(如 第一行,最大工資是100了,更新數(shù)據(jù)后? 工齡增加后工資? 依然是 最大工資100,第二行;而沒有超過最大工資 更新數(shù)據(jù)后? 工齡增加后工資為244)
job_lvl????? emp_id??????????? 工齡??????????? 最大工資????????? ?工齡增加后工資
100????? ??? PSA89086M???? 19?????????????? 100????????????????????? ?119225????????? VPA30890F????? 19?????????????? ?225????????????????????? ?244100????????? H-B39728F?????? 20????????????? ? 100????????????????????? ?120200???????? ?L-B31947F?????? 19???????????????? 200????????????????????? ?219250???????? ?F-C16315M??? ? 19?????????????? ?250??????????????????????? 269250????????? PTC11962M??? ?20??????????????? ?250?????????????????????? ?270165?????????? A-C71970F???? 18??????????????? 165?????????????????????????? 183225??????????AMD15433F???? 19??????????????? 225????????????????????????? 244175????????? ARD36773F???????17???????????? 175??????????????????????? ?192
SQL; 數(shù)據(jù)更新;高手解決下.根據(jù)員工工齡給員工漲工資,1年工齡增加1個job_lvl,但不能超過該職位的最高level
鴻蒙傳說
2018-12-07 11:11:01