根据另一个表中的值更新一个表中的字段

时间:2018-11-16 11:44:31

标签: ms-access

我在一个表中有一个状态字段,其中测试步骤被标记为passfail,在另一个表中,如果全部,我必须将测试用例(testID)更新为pass测试步骤(testID)为pass,如果测试之一为fail,则为fail测试用例。

我在两个表中都有testID字段。

在第一张表中,一列是testID,对应于该测试ID的5个步骤,可以是passfail

在第二张表中,我有一列,我必须根据总共5个步骤将状态标记为passfail

表1

X

表2

X

1 个答案:

答案 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
)