SQL将表中的某列数据按条件更新

qq_28693325 2016-05-05 10:12:41
已知一张表table1如下:
sernum teststatus machine testtime
TEST1231 S fct20101 2015/2/2 10:00
TEST1232 S fct20101 2015/2/2 10:00
TEST1233 S fct20101 2015/2/2 10:00
TEST1234 S fct20101 2015/2/2 10:00
TEST1231 P fct20101 2015/2/2 15:02
TEST1232 P fct20101 2015/2/2 15:08
TEST1233 P fct20101 2015/2/2 16:15
TEST1234 P fct20101 2015/2/2 15:22
TEST2021 S fct20102 2015/2/3 16:02
TEST2022 S fct20102 2015/2/3 16:02
TEST2023 S fct20102 2015/2/3 16:02
TEST2024 S fct20102 2015/2/3 16:02
TEST2025 S fct20102 2015/2/3 16:02
TEST2026 S fct20102 2015/2/3 16:02
TEST2021 P fct20102 2015/2/3 16:02
TEST2022 P fct20102 2015/2/3 16:02
TEST2023 P fct20102 2015/2/3 16:02
TEST2024 P fct20102 2015/2/3 16:02
TEST2025 P fct20102 2015/2/3 16:02
TEST2026 P fct20102 2015/2/3 16:02
TEST1231 S fct20105 2015/2/5 10:00
TEST1232 S fct20105 2015/2/5 10:00
TEST1233 S fct20105 2015/2/5 10:00
TEST1234 S fct20105 2015/2/5 10:00
TEST1231 P fct20105 2015/2/5 20:02
TEST1232 P fct20105 2015/2/5 20:23
TEST1233 P fct20105 2015/2/5 20:32
TEST1234 P fct20105 2015/2/5 20:16
..........
现在需要将所有 teststatus='P'或teststatus='A'的记录的testtime更新为其对应的sernum,machine相同的但teststatus='S'的testtime

如下结果:
sernum teststatus machine testtime
TEST1231 S fct20101 2015/2/2 10:00
TEST1232 S fct20101 2015/2/2 10:00
TEST1233 S fct20101 2015/2/2 10:00
TEST1234 S fct20101 2015/2/2 10:00
TEST1231 P fct20101 2015/2/2 10:00
TEST1232 A fct20101 2015/2/2 10:00
TEST1233 P fct20101 2015/2/2 10:00
TEST1234 P fct20101 2015/2/2 10:00
TEST2021 S fct20102 2015/2/3 16:02
TEST2022 S fct20102 2015/2/3 16:02
TEST2023 S fct20102 2015/2/3 16:02
TEST2024 S fct20102 2015/2/3 16:02
TEST2025 S fct20102 2015/2/3 16:02
TEST2026 S fct20102 2015/2/3 16:02
TEST2021 A fct20102 2015/2/3 16:02
TEST2022 P fct20102 2015/2/3 16:02
TEST2023 A fct20102 2015/2/3 16:02
TEST2024 P fct20102 2015/2/3 16:02
TEST2025 P fct20102 2015/2/3 16:02
TEST2026 P fct20102 2015/2/3 16:02
TEST1231 S fct20105 2015/2/5 10:00
TEST1232 S fct20105 2015/2/5 10:00
TEST1233 S fct20105 2015/2/5 10:00
TEST1234 S fct20105 2015/2/5 10:00
TEST1231 P fct20105 2015/2/5 10:00
TEST1232 P fct20105 2015/2/5 10:00
TEST1233 A fct20105 2015/2/5 10:00
TEST1234 P fct20105 2015/2/5 10:00
请帮忙 写个SQL语句,谢谢!
...全文
216 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_28693325 2016-05-07
  • 打赏
  • 举报
回复
谢谢xxzxwsx的解答,可以。
在路上_- 2016-05-05
  • 打赏
  • 举报
回复

update a set a.testtime=b.testtime
from table1 a join table1 b on a.sernum=b.sernum and a.machine=b.machine
where a.teststatus in ('P', 'A') and b.teststatus='S'
在路上_- 2016-05-05
  • 打赏
  • 举报
回复

update a set a.testtime=b.testtime
from table1 a join table1 b on a.sernum=b.sernum and a.machine=b.machine
where a. teststatus in ('P', 'A') and b. teststatus='S'

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧