Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 仅在多个重复记录中更新第一个和最后一个记录_Sql_Ms Access - Fatal编程技术网

Sql 仅在多个重复记录中更新第一个和最后一个记录

Sql 仅在多个重复记录中更新第一个和最后一个记录,sql,ms-access,Sql,Ms Access,我在Access中有一个名为咒语的表,其中保存了患者咒语(患者在医院内有咒语)。其结构如下: | ID | SpellID | MultipleSpell | FirstSpell | LastSpell | |----|---------|---------------|------------|-----------| | 1 | 1 | False | | | | 2 | 2 | True

我在Access中有一个名为
咒语
的表,其中保存了患者咒语(患者在医院内有咒语)。其结构如下:

| ID | SpellID | MultipleSpell | FirstSpell | LastSpell |
|----|---------|---------------|------------|-----------|
| 1  | 1       | False         |            |           |
| 2  | 2       | True          |            |           |
| 3  | 2       | True          |            |           |
| 4  | 3       | False         |            |           |
| 5  | 4       | False         |            |           |
| 6  | 5       | True          |            |           |
| 7  | 5       | True          |            |           |
| 8  | 5       | True          |            |           |
MultipleSpell
列表示该拼写在表中多次出现

我想运行查询,将ID为
1
2
4
5
6
的记录的
FirstSpell
列更新为
True
。因此,基本上,如果某个拼写是表中的第一个拼写,则应在
FirstSpell
列中对其进行标记

然后,我还想将ID为
1
3
4
5
8
的记录的
LastSpell
列更新为
True


原因是(如果您感兴趣的话)该表链接到一个单独的表,其中包含wards的名称。链接到另一个表并指明该病房是入院病房(
FirstSpell
)还是出院病房(
FirstSpell

您可以使用以下方法更新第一个病房:

update spells
    set firstspell = 1
    where id = (select min(id)
                from spells as s2
                where spells.spellid = s2.spellid
               );
类似的逻辑(使用
max()
)可以用于最后一个法术