Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 访问更新查询最小值_Sql_Ms Access - Fatal编程技术网

Sql 访问更新查询最小值

Sql 访问更新查询最小值,sql,ms-access,Sql,Ms Access,我正在尝试对“Rank”字段的最低值运行更新查询。当我向查询中添加其他条件时,查询将更新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]

我正在尝试对“Rank”字段的最低值运行更新查询。当我向查询中添加其他条件时,查询将更新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”),查询将更新最低的“Order”地址。当我包含其他条件时(即:我想要最低顺序的地址,地址状态=良好或未知,以及具有“False”优先级的地址状态),它将更新0条记录。我不太确定我在这件事上哪里出了问题。谢谢

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

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")
);

如果您尝试使用产生意外结果的条件选择记录,会发生什么情况?你能拿回唱片吗?我不太清楚你问的那个问题是什么意思。我遇到的最大问题是在选择“订单”字段的“最低”值时尝试运行更新查询。如果我在没有“选择最小”部分的情况下运行查询,我可以选择我想要的记录,但没有最低的“顺序”。因此,我的查询条件是:1。以最低的“订单”2记录。地址优先级为False 3。地址状态='Good'或'Unknown'将所选记录的地址优先级更新为TrueI。我有一个地址排名为1-5的表。这些地址还具有良好、不良和未知状态。每次地址变为“坏”时,我都要选择状态为“好”或“未知”的下一个排名地址,然后更新该地址。没有任何记录满足以下条件:Priority=False和(status=“Good”或status=“Unknown”)。记录必须同时满足两个参数才能返回。但有些记录满足“优先级=错误”和(状态=良好或状态=未知)的条件。有4条记录符合这些标准。我以前试过,但是它会更新每个人的5个地址(大约60条记录),而不仅仅是我想更新的一个人的1个地址。谢谢你。我很感谢您的帮助。但是(如果我理解的话)它们对订单的价值都是相同的,您如何确定第一个(或目标)呢?除非您多次运行它,但只希望它成功一次。“订单”是我们用于“排名”的术语。例如,我会将5个地址按1-5顺序排列。地址顺序1将被标记为“坏”,因此我希望此更新查询将地址顺序2标记为“优先级”。我做了一种难看的解决方法:我有一个查询来生成一个表,它可以正确地查询我需要的最低“顺序”地址。然后根据该表中的记录进行更新查询更新。谢谢你的帮助,尽管你的解决方案听起来并不难听。如果将查询用作子查询,则只需一步即可完成。