访问更新查询最小值

Posted

技术标签:

【中文标题】访问更新查询最小值【英文标题】:Access Update Query Min Value 【发布时间】:2017-05-04 22:54:50 【问题描述】:

我正在尝试对“排名”字段的最低值运行更新查询。当我在查询中添加其他条件时,查询会更新 0 条记录。这是查询:

UPDATE Table_Address SET Table_Address.Priority = True
WHERE (
((Table_Address.Priority)=False) AND 
((Table_Address.Order)=(SELECT MIN(Order) FROM Table_Address)) AND 
((Table_Address.ID)=[Forms]![Form_UpdateAddressInfo]![ID]) AND 
((Table_Address.Status)="Good" Or (Table_Address.Status)="Unknown"));

当我在没有以下条件的情况下运行查询时:Table_Address.Priority=False 和 (Table_Address.Status)="Good" 或 (Table_Address.Status)="Unknown"),查询将更新最低的“订单”地址.当我包含其他标准时(即:我想要最低排序的地址,地址状态 = 好或未知,以及具有“假”优先级的地址状态),它会更新 0 条记录。我不太确定我在哪里出错了。谢谢。

【问题讨论】:

如果您尝试选择具有产生意外结果的条件的记录会发生什么情况?你有任何记录回来吗? 我不太清楚你这个问题是什么意思。我遇到的一个大问题是在选择“订单”字段的“最低”值时尝试运行更新查询。如果我在没有“Select MIN”部分的情况下运行查询,我可以选择我想要的记录,但没有最低的“Order”。所以我对此查询的标准是: 1. 'Order' 最低的记录 2. 地址优先级为 False 3. 地址状态 = 'Good' 或 'Unknown' 将所选记录的地址优先级更新为 True 我有一个表格,其中的地址从 1 到 5 排列。这些地址也有 Good、Bad 和 Unknown 状态。每次地址变为“坏”时,我想选择状态为“好”或“未知”的下一个排名地址,然后更新该地址。 没有记录符合以下条件:优先级 = 假 AND(状态 =“良好”或状态 =“未知”)。一条记录必须满足两个参数才能返回。 但有些记录满足“优先级 = 假”和(状态 = 良好或状态 = 未知)的标准。有 4 条记录符合这些条件。 【参考方案1】:

如果我之前评论中的猜测是正确的,这可能就是你需要的:

UPDATE Table_Address
SET Table_Address.Priority = True
WHERE
    Table_Address.ID=[Forms]![Form_UpdateAddressInfo]![ID]
    AND Table_Address.Order=(
    SELECT MIN(Order) FROM Table_Address
    WHERE
        Table_Address.Priority)=False
        AND Table_Address.ID=[Forms]![Form_UpdateAddressInfo]![ID]
        AND (Table_Address.Status="Good"
            Or Table_Address.Status="Unknown")
);

【讨论】:

我之前尝试过,但是它会更新每个人的 5 个地址(大约 60 条记录),而不仅仅是我想更新的一个人的 1 个地址。不过还是谢谢你。感谢您的帮助。 但是(如果我理解的话)它们必须都具有相同的 Order 值,您将如何识别第一个(或要定位的)? 除非,您可能多次运行它,但只希望它成功一次? “订单”是我们用于“排名”的术语。因此,例如,我将有 5 个按 1-5 排序的地址。地址顺序 1 将被标记为“错误”,因此我希望此更新查询将地址顺序 2 标记为“优先级”。我做了一种丑陋的解决方法:我有一个查询来制作一个表格,它可以正确查询我需要的最低“有序”地址。然后我有一个基于该表中记录的更新查询更新。感谢您的所有帮助 虽然您的解决方案听起来并不难看。如果您将查询用作子查询,您可以一步完成。

以上是关于访问更新查询最小值的主要内容,如果未能解决你的问题,请参考以下文章

如何在SQL中查询最大值与最小值

sql查询时间最小值的列

SQL查询某字段最小值对应的行

mysql 查询最大最小值和对应的时间

SQL分组查询最大值最小值

sql 几个字段最小值