我有我们用它来跟踪门票访问DB。每张门票可能有多次出现,因为与该票证相关联的不同的编程变化。每个记录也有一个program_type场是SVR或VB。例如:

123456 - SVR - SomeCode

123456 - VB - SomeVBCode

我已经添加到称为VB_Flag数据库中,默认为0,这是我想改变为数字1为含有VB代码每票其中一列。所以,这里的结果将是:

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 tickets SET VB_Flag = 1
WHERE ticket_id IN (SELECT ticket_id FROM tickets WHERE program_type = 'VB');

内SELECT语句返回具有的“VB”一个program_type所有ticket_ids的列表。

在更新然后设置VB_Flag为1与那些ticket_ids之一的所有记录(包括那些与“SVR”的program_type。

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

一个简单的嵌套选择应该把你的问题的护理:

UPDATE myTable
SET VB_Flag = 1 
WHERE TicketID in (Select TicketID from myTable WHERE program_type = 'VB')
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top