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

标签 sql ms-access sql-update record

我有一个 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 更新并增加先前记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216314/

相关文章:

arrays - 使用 VBA 和 JSON 解析嵌套数组

vba - 通过 VBA 将 Access 查询复制到 Excel(错误 3343)

sql - 如何在 Postgresql 中创建条件插入函数?

sql - Node JS Sequelize 从 SQL 创建模型

sql - 如何使用 OUTPUT SQL 2008 返回错误?

sql - Access : Overflow Error with UNION but not with UNION ALL or Individual Queries

php - 为什么存储过程不运行?

mysql - 通过连接两个表来更新第三个表

sql - 选择共享 key 版本最高的行

mysql - Django 聚合做过多的 GROUP BY 子句