使用同一个表中的数据更新记录

时间:2015-09-14 16:46:51

标签: sql sql-server

我有一个连接表,用于记录文件状态(活动/已删除/存档等)中的更改。

e.g。

+----+---------+------------+-------+
| PK | File_FK |    Date    | State |
+----+---------+------------+-------+
|  1 |     100 | 11-9-2015  |     1 |
|  2 |     200 | 14-09-2015 |     2 |
|  3 |     300 | 14-07-2015 |     0 |
|  4 |     300 | 12-9-2015  |     2 |
|  5 |     200 | 14-09-2015 |     2 |
|  6 |     300 | 14-09-2015 |     0 |
|  7 |     300 | 13-09-2015 |     1 |
+----+---------+------------+-------+

在某个特定日期,有许多记录未相应插入,例如7月15日。

有没有办法如何自动更新某些记录?

我想将状态更改为最后一个选项(最新日期),如果状态为0且没有先前的0作为状态(对于相同的文件外键)而不修改以前的状态为零

尝试简化(以File_FK = 300为例):

我想:

  • 要更新的文件的状态为1.
  • 州' 0'因为它是在2015年9月14日(最后一个)制作的,所以无效。
  • 防止更新' 0'这是在2015年7月14日制作的。
  • 基本上我想将文件的状态更改为之前的状态' 0'不改变之前完成的0。

0 个答案:

没有答案