gpt4 book ai didi

SQL - Access 条件更新

转载 作者:行者123 更新时间:2023-12-01 04:05:05 25 4
gpt4 key购买 nike

我有一个名为 POS_File_Detail 的表。我想根据 Line_Number 的计数更新 Invoice_Number 并为每个重复增加 1。所以基本上,如果我有三个具有相同 Invoice_Number 的重复条目,它将用它是什么重复编号更新 Line_Number。像这样的东西

    Invoice_Number | Line_Number | Description
0123456 1 Pepsi
0123456 2 Chips
0123499 1 Hot dogs
0123456 3 Mustard

该表的主键是一个名为 Record_ID 的自动编号字段。

我不确定如何以正确的语法使用它,但希望这会告诉你我正在尝试做什么
    UPDATE POS_File_Detail 
SET POS_File_Detail.Line_Number = Line_Number +1
WHERE COUNT(Invoice_Number)>1;

最佳答案

如果您有一个字段或字段组合允许您定义重复的 Invoice_Number 值的顺序,这将非常容易。如果没有这样的方法,检索这些 Invoice_Number 值的顺序是任意的。

您有一个名为“Record_ID”的自动编号字段作为 POS_File_Detail 主键。

SELECT
Invoice_Number,
DCount("*", "POS_File_Detail",
"Invoice_Number = '" & [Invoice_Number] &
"' AND Record_ID <= " & [Record_ID]) AS Line_Number
FROM POS_File_Detail;

尽管您要求将 Line_Number 存储在 POS_File_Detail 中,但我给了您一个 SELECT 语句。我这样做是因为在表中存储派生值几乎总是一个错误。最好在需要时通过查询导出 Line_Number。这样您就可以避免存储冗余数据并确保 Line_Number 始终是最新的,尽管对 POS_File_Detail 进行了插入、更新和删除。

然而 如果 您有充分的理由将 Line_Number 实际存储在 POS_File_Detail 中,您可以将 SELECT 转换为 UPDATE 语句。
UPDATE POS_File_Detail
SET Line_Number = DCount("*", "POS_File_Detail",
"Invoice_Number = '" & [Invoice_Number] &
"' AND Record_ID <= " & [Record_ID]);

请确保您确实有令人信服的理由来存储这些值。

关于SQL - Access 条件更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9980142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com