仅在许多重复记录

时间:2016-02-15 16:14:59

标签: sql ms-access

我在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为124的记录, 56。所以基本上,如果法术是表格中的第一个,则应在FirstSpell列中标记。

我还想将LastSpell列更新为True,以查找ID为134,{{1}的记录}},5

对此的推理(如果您感兴趣)是该表链接到包含病房名称的单独表。链接到另一个表并指示病房是否是入院病房(8)或出院病房(FirstSpell

是有用的。

1 个答案:

答案 0 :(得分:0)

您可以使用以下方式更新第一个:

update spells
    set firstspell = 1
    where id = (select min(id)
                from spells as s2
                where spells.spellid = s2.spellid
               );

类似的逻辑(使用max())可用于最后一个咒语。