gpt4 book ai didi

sql - 增加先前记录的 MS Access 更新

转载 作者:行者123 更新时间:2023-12-04 06:24:09 24 4
gpt4 key购买 nike

我有一个 MS Access 2007 数据库,我需要为其创建更新。我要更新的表如下所示:

 CarID  WeekOf          NumDataPoints   NumWksZeroPoints
3AA May-14-2011 23 0
7BB May-14-2011 9 0

3AA May-21-2011 35 0
7BB May-21-2011 0 1

3AA May-28-2011 24
7BB May-28-2011 0

我正在处理 2011 年 5 月 28 日的最新记录集,要点是更新每辆车没有数据点的周数。我通过检查当前周的点数来做到这一点,如果它确实有一些点,那么#WeeksZeroPoints 将设置为零,如果当前的点数为零,则我采用前几周的计数并加一。对于我的最后一周,我会输入
  0
2

所以我尝试过类似的东西
UPDATE tblCars 
SET NumWksZeroPoints = IIF(NumDataPoints<>0, 0, (SELECT MAX(NumWksZeroPoints) AS wzp
FROM tblCars AS f
WHERE f.CarID=tblCars.CarID AND
f.WeekEnding=#5/21/2011#) + 1
)
WHERE WeekOf=#5/28/2011#;

不幸的是,这并不像我想象的那样工作。我想我已经有了这个概念和大部分 SQL,我似乎无法让它工作。这是针对 MS Access 的,所以我知道的其他一些技巧是行不通的。任何帮助表示赞赏。

最佳答案

使用您的示例数据,我运行了以下内容

UPDATE tblcar AS c 
INNER JOIN tblcar AS previous
ON c.carid = previous.carid
SET c.numwkszeropoints = Iif([previous].[NumWksZeroPoints] = 0, 0,
[previous].[NumWksZeroPoints] + 1)
WHERE c.weekof =#5/28/2011 #
AND previous.weekof =#5/21/2011#;

之后的 table 是这样的
CarID WeekOf     NumDataPoints NumWksZeroPoints
----- ---------- ------------- -----------------
3AA 05/14/2011 23 0
7BB 05/14/2011 9 0
3AA 05/21/2011 35 0
7BB 05/21/2011 0 1
3AA 05/28/2011 24 0
7BB 05/28/2011 0 2

基本上查询会自我连接回前一周,如果它不为零,则将当前周更新为前一周的值 + 1。

关于sql - 增加先前记录的 MS Access 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com