为了更好地说明我的示例,这通常是我正在寻找的那种东西:
这就是我要开始的:
Column 1 | Column 2
-------------------
A | 1
B | 2
A | 3
我想以以下任一结尾:
1)这样比较可取,因为表中的数据会更少,但绝对没有必要
Column 1 | Column 2
-------------------
A | 3
B | 2
2)
Column 1 | Column 2
-------------------
A | 3
B | 2
A | 3
所以为了解释得更清楚一点,我有一张表,里面有一堆数据。用户可以随时导入数据。问题是偶尔会更新一些条目。在这种情况下,我需要使用最后添加的数据状态来更新表中的所有条目。例如,如果最初 A 的值为 1,而表后来更新为 A 的值为 3 的条目,我需要更新整个表以显示 A 的值仅为 3。
此外,虽然我知道如何在查询中执行此操作,但我需要能够在表上执行此操作。现在我想到了几个想法,但似乎没有一个可行。我尝试了一个更新查询:
"UPDATE tblData SET column2 = Last(Column2) GROUP BY Column1"
但这似乎并不奏效。我也试过:
"UPDATE tblData Set Column2 = DLast('Column2', 'tblData')"
这更接近。但是,它正在使用最后一条记录更新所有条目,如下所示:
Column 1 | Column 2
-------------------
A | 3
B | 3
A | 3
我猜这是因为没有“GROUP BY”子句告诉它只对 Column1 的每个实例执行此操作,但通过研究,看起来您不能将“GROUP BY”放在“UPDATE”中陈述。我应该如何处理以获得我正在寻找的结果?
编辑:此外,虽然我对此不是 100% 确定,但我认为解决此问题的方法是使用 DLast 的第三个可选参数,即 [criteria] 参数。我能想到的唯一方法是为 Column1 指定一个确切的值,这就是为什么我不确定如何在这里使用它,但我觉得必须有一种方法来操纵它以应用于每个单独的值第 1 列。