我在Access中有一个名为Spells
的表,其中包含患者咒语(患者在医院内有咒语)。它的结构如下:
| 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
列表示表格中多次出现该咒语。
我想运行查询,这会将FirstSpell
列更新为True
,以查找ID为1
,2
,4
的记录, 5
,6
。所以基本上,如果法术是表格中的第一个,则应在FirstSpell
列中标记。
我还想将LastSpell
列更新为True
,以查找ID为1
,3
,4
,{{1}的记录}},5
。
对此的推理(如果您感兴趣)是该表链接到包含病房名称的单独表。链接到另一个表并指示病房是否是入院病房(8
)或出院病房(FirstSpell
)
答案 0 :(得分:0)
您可以使用以下方式更新第一个:
update spells
set firstspell = 1
where id = (select min(id)
from spells as s2
where spells.spellid = s2.spellid
);
类似的逻辑(使用max()
)可用于最后一个咒语。