Ms access Access DB query-需要更新某些记录的帮助吗

Ms access Access DB query-需要更新某些记录的帮助吗,ms-access,sql-update,Ms Access,Sql Update,我有一个数据库,我们用它来跟踪门票。由于与该票证相关的不同编程更改,每个票证可能会多次出现。每个记录还具有一个程序类型字段,即SVR或VB。例如: 123456 - SVR - SomeCode 123456 - VB - SomeVBCode 我在数据库中添加了一个名为VB_Flag的列,默认值为0,对于每个包含VB代码的票证,我希望将其更改为数字1。因此,这里的结果将是: 123456 - SVR - SomeCode - 1 123456 - VB - SomeVBCode - 1

我有一个数据库,我们用它来跟踪门票。由于与该票证相关的不同编程更改,每个票证可能会多次出现。每个记录还具有一个程序类型字段,即SVR或VB。例如:

123456 - SVR - SomeCode

123456 - VB - SomeVBCode
我在数据库中添加了一个名为VB_Flag的列,默认值为0,对于每个包含VB代码的票证,我希望将其更改为数字1。因此,这里的结果将是:

123456 - SVR - SomeCode - 1

123456 - VB - SomeVBCode - 1
但是,我一辈子都不知道如何编写这个更新查询。起初我试着:

UPDATE table SET VB_Flag = 1 WHERE program_type = 'VB'
但这显然遗漏了所有与VB代码共享票号的SVR代码

我不知所措。帮助?

这应该可以:

UPDATE table SET VB_Flag = 1 
WHERE TicketNum IN (SELECT TicketNum FROM Table WHERE program_type = 'VB')

简单的嵌套选择可以解决您的问题:

UPDATE myTable
SET VB_Flag = 1 
WHERE TicketID in (Select TicketID from myTable WHERE program_type = 'VB')
更新 桌子 内部联接表如表2所示 在Table.TicketNumber=Table2.TicketNumber上 设置 表2.VB_标志=1 哪里
(([Table].[program_type]=“VB”)

您可以执行以下操作:

UPDATE tickets SET VB_Flag = 1
WHERE ticket_id IN (SELECT ticket_id FROM tickets WHERE program_type = 'VB');
内部SELECT语句返回程序类型为“VB”的所有票证ID的列表


然后,更新会将具有其中一个票证ID(包括程序类型为“SVR”的记录)的所有记录的VB_标志设置为1。

谢谢!我在()东西,但无法完全理解。这就对了!谢谢你的透彻解释。你在答案上被打败了,但我想让你知道这也很有帮助。很高兴它很有用。我想一些关于这种嵌套查询如何工作的解释可能会在今后派上用场。