我在一个表中有一个状态字段,其中测试步骤被标记为pass
或fail
,在另一个表中,如果全部,我必须将测试用例(testID)更新为pass
测试步骤(testID)为pass
,如果测试之一为fail
,则为fail
测试用例。
我在两个表中都有testID
字段。
在第一张表中,一列是testID
,对应于该测试ID的5个步骤,可以是pass
或fail
。
在第二张表中,我有一列,我必须根据总共5个步骤将状态标记为pass
或fail
。
答案 0 :(得分:0)
以下查询分两个步骤执行更新:第一个查询更新存在和通过的那些测试,第二个查询更新存在和失败的那些测试。
update table1 t1
set t1.teststatus = 'pass'
where t1.testID in
(
select t2.testID
from table2 t2
group by t2.testID
having min(t2.status) = max(t2.status) and min(t2.status) = 'pass'
)
update table1 t1
set t1.teststatus = 'fail'
where t1.testID in
(
select t2.testID
from table2 t2
where t2.status = 'fail'
group by t2.testID
)