【发布时间】:2019-11-25 07:52:18
【问题描述】:
我有一个日期列表:list_of_dates。
我想用这个代码 (#1) 找到每个数字的最大值和最小值。
它应该如何工作,因此我得到了表格 MinMax
现在我想用这些新获得的值 (#2) 更新另一个列表 (list_of_things)。
但是,这是不可能的。 我认为这是由于 DISTINCT 以及我总是得到每个数字两行的事实,每行都有最小值和最大值。因此无法进行更新。 不幸的是,我不知道其他方法。
#1
SELECT a.number, b.MaxDateTime, c.MinDateTime
FROM (list_of_dates AS a
INNER JOIN (
SELECT a.number, MAX(a.dat) AS MaxDateTime
FROM list_of_dates AS a
GROUP BY a.number) AS b
ON a.number = b.number)
INNER JOIN (SELECT a.number, MIN(a.dat) AS MinDateTime
FROM list_of_dates AS a
GROUP BY a.number) AS c
ON a.number = c.number;
#2
UPDATE list_of_things AS a
LEFT JOIN MinMax AS b
ON a.number = b.number
SET a.latest = b. MaxDateTime, a.ealiest = b.MinDateTime```
【问题讨论】:
-
当涉及到不可编辑的查询时,无法完成 UPDATE 操作。有或没有 DISTINCT,句号。聚合查询是不可编辑的数据集。无论如何,保存聚合数据通常是个坏主意。您可以遍历 VBA 中的记录集并使用记录集中的值更新记录。或者将记录保存到“临时”表中,然后在 UPDATE 操作中使用该表。