我有一种情况,我需要更新表中的行,当遇到重复的条目时,然后根据另一个列值做出决定。
例如,让我们说我的表是这样的:salary_table
Salary Username Usersurname Last_entry_date
3000 abc bak 20-feb-13
4000 sdf kup 20-mar-15
5000 abc bak 20-mar-15
所以我的更新查询是这样的
update salary_table
set salary=9000
where username=abc
and usersurname=bak;
对于第2行的记录,当有唯一条目时,这不会导致任何问题
但我会为像1(1和3)这样的记录获取多行,但我只想更新一行。在这种情况下,我想检查last_entry_date。并且具有最新日期(在这种情况下为第3行)的条目应该更新。
怎么做?
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
Update salary_table
set salary = 9000
where username= 'abc'
and usersurname= 'bak'
and Last_entry_date = (select max(Last_entry_date)
from SalaryTable
where s.username = username
and s.usersurname = usersurname);
答案 1 :(得分:0)
你必须添加" where子句"在这种情况下你想要什么 " last_entry_date = ??" 如果没有添加适当的过滤器,您将如何识别要更新的行。