我有一个访问数据库,我们用来跟踪票证。由于与每个票证相关联的不同编程改变,每个票证可能会有多次出现。每条记录也有一个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代码。
我不知所措。帮助?
发布于 2009-01-30 18:05:45
这应该是可行的:
UPDATE table SET VB_Flag = 1
WHERE TicketNum IN (SELECT TicketNum FROM Table WHERE program_type = 'VB')发布于 2009-01-30 18:08:05
你可以这样做:
UPDATE tickets SET VB_Flag = 1
WHERE ticket_id IN (SELECT ticket_id FROM tickets WHERE program_type = 'VB');inner语句返回program_type为'VB‘的所有ticket_ids的列表。
然后,对于具有这些ticket_ids之一的所有记录(包括program_type为'SVR‘的记录),更新将VB_Flag设置为1。
发布于 2009-01-30 18:07:46
在Table.TicketNumber = Table2.TicketNumber SET Table2.VB_Flag =1 WHERE ((Table.program_type="VB"))上将表内连接表更新为Table2
https://stackoverflow.com/questions/496483
复制相似问题