【发布时间】:2011-06-02 15:01:41
【问题描述】:
我有一个需要为其创建更新的 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 的,所以我知道的其他一些技巧是行不通的。任何帮助表示赞赏。
【问题讨论】:
-
对问题的支持是在下方评论它是“设计锁定”。有时你只需要知道如何以正确的方式做错事......
标签: sql ms-access sql-update record