访问数据库查询 - 需要帮助更新某些记录

时间:2009-01-30 17:50:40

标签: ms-access sql-update

我有一个用于跟踪门票的访问数据库。由于与该票证相关联的不同编程更改,每个票证可能有多次出现。每条记录还有一个program_type字段,即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代码。

我很茫然。帮助

4 个答案:

答案 0 :(得分:2)

您可以这样做:

UPDATE tickets SET VB_Flag = 1
WHERE ticket_id IN (SELECT ticket_id FROM tickets WHERE program_type = 'VB');

内部SELECT语句返回所有具有program_type为“VB”的ticket_id的列表。

然后,更新将所有记录的VB_Flag设置为1,其中包含其中一个ticket_id(包括program_type为'SVR'的那些。

答案 1 :(得分:1)

这应该有效:

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

答案 2 :(得分:1)

UPDATE     表     INNER JOIN表AS表2     在Table.TicketNumber = Table2.TicketNumber 组     Table2.VB_Flag = 1 哪里     (([表] [program_type] = “VB”))

答案 3 :(得分:0)

一个简单的嵌套选择应该可以解决您的问题:

UPDATE myTable
SET VB_Flag = 1 
WHERE TicketID in (Select TicketID from myTable WHERE program_type = 'VB')