【问题标题】:Update Query Using SQL使用 SQL 更新查询
【发布时间】:2021-06-18 05:19:11
【问题描述】:

希望你一切安好。

我在尝试让我的更新查询工作时遇到了一点麻烦,欢迎大家提供帮助。

所以我运行了查询,但它表明没有更新任何行,并且我在原始表中确实有记录。

这是我的 SQL 语句。

UPDATE tblFuelEntries INNER JOIN tblFuelMaster ON tblFuelEntries.EntryID2 = tblFuelMaster.EntryID2 
SET tblFuelEntries.EntryID2 = [tblFuelMaster]![EntryID2], tblFuelEntries.FillDate = [tblFuelMaster]![FillDate], tblFuelEntries.FleetNo = [tblFuelMaster]![FleetNo], tblFuelEntries.Driver = [tblFuelMaster]![Driver], tblFuelEntries.FillOdo = [tblFuelMaster]![FillOdo], tblFuelEntries.PrevOdo = [tblFuelMaster]![PrevOdo]
WHERE (((tblFuelEntries.PrevOdo)=(SELECT TOP 1 Dup.FillOdo
FROM tblFuelEntries AS Dup
WHERE Dup.FleetNo = tblFuelEntries.FleetNo
AND Dup.FillDate < tblFuelEntries.FillDate
AND Dup.FillOdo < tblFuelEntries.FillOdo)));

基本上,我试图获取语句以查找先前的填充 odo 读数,并使用更新查询将其放入当前的 PrevOdo 列中。

我设法让它作为 SELECT SQL 语句完美地工作,但似乎无法将它放入 UPDATE 查询中。

提前谢谢你。

【问题讨论】:

  • 通常没有理由存储这个。需要时计算。工作 SELECT 中的数据是否可编辑?
  • 我猜可能是这样,但这取决于数据库中的记录。我知道不需要存储它,但存储这些值对我来说肯定会更好,这样我无论如何都可以拥有这些值,但更重要的是有没有办法实现我想要实现的目标?
  • 是的,有办法。如果 UPDATE 操作证明不切实际,请使用 VBA 操作记录集。编辑问题以将示例数据显示为文本表。
  • 您的查询有什么问题?你有错误吗?结果不正确?
  • 不,我只是没有得到任何结果,状态 (0) 行已更新。将尝试下面的代码,看看会发生什么

标签: sql ms-access


【解决方案1】:

你的代码应该是这样的

UPDATE tblFuelEntries
SET tblFuelEntries.EntryID2 = [tblFuelMaster].[EntryID2],
tblFuelEntries.FillDate = [tblFuelMaster].[FillDate],
tblFuelEntries.FleetNo = [tblFuelMaster].[FleetNo],
tblFuelEntries.Driver = [tblFuelMaster].[Driver],
tblFuelEntries.FillOdo = [tblFuelMaster].[FillOdo],
tblFuelEntries.PrevOdo = [tblFuelMaster].[PrevOdo]

From tblFuelEntries INNER JOIN tblFuelMaster ON tblFuelEntries.EntryID2 = tblFuelMaster.EntryID2 
WHERE tblFuelEntries.PrevOdo= ISNULL((SELECT TOP 1 Dup.FillOdo
FROM tblFuelEntries AS Dup
WHERE Dup.FleetNo = tblFuelEntries.FleetNo
AND Dup.FillDate < tblFuelEntries.FillDate
AND Dup.FillOdo < tblFuelEntries.FillOdo),0)

【讨论】:

  • 状态我有一个语法错误(缺少运算符)然后突出显示第一个 FROM 并且 PrevOdo 字段中也没有值,这是我现在尝试使用此查询实现的目标
猜你喜欢
  • 2014-07-27
  • 2014-12-02
  • 1970-01-01
  • 2013-01-15
  • 2015-05-20
相关资源
最近更新 更多