首页 > 解决方案 > 根据另一个表中的值更新一个表中的字段

问题描述

我在表中有一个状态字段,其中测试步骤标记为passorfail并且在另一个表中我必须更新测试用例(testID),pass好像所有测试步骤(testID)都是passfail如果其中一个测试是 ,则测试用例fail

testID在两个表中都有共同的字段。

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

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

表格1

X

表 2

X

标签: ms-access

解决方案


以下查询分两步执行更新:第一个查询更新那些存在并通过的测试,第二个查询更新那些存在但失败的测试。

更新“通过”测试:

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
)

推荐阅读