首页 > 解决方案 > 无论字段计数是否为 0,是否可以基于更新查询?(MS 访问,SQL)

问题描述

问题的速写:每个批号都链接到一个产品号。根据产品,需要对批次进行不同的测试。如果每个测试都已完成,那么我想“退出”该批次。

我的问题在于检查每批次的每个测试是否已完成并将结果链接到更新查询。

我对数据库和 SQL 很陌生。我可以只用 SQL 解决我的问题,还是需要创建宏/vba 代码?

=-=-=- 编辑:=-=-=-

表:

-tblbatches:所有测试完成后,每个新批次都会获得一个批次号(文本字段),通过勾选是/否字段来注销批次

-tbltestsperbatch:此表根据产品编号自动将正确的测试分配给批次。批号(文本字段)、test_ID(数字字段)、Testcompleted(是/否字段)。因此,当一个批次需要完成 5 次测试时,会生成 5 条新记录,具有相同的批号但 5 个不同的 Test_ID。当所有 5 个 Yes/No 字段都勾选 YES 时,tblBatches.Signout 需要自动勾选 YES。

批处理

批号 产品编号 登出
1 0001
2 0001
... ... ...

tbltestsperbatch

批号 test_ID 测试完成
1 1 是的
1 2
... ... ...

我现在有一个运行更新查询的有效 SQL 代码

    UPDATE tblbatches 
    SET tblbatches.signout = Yes
    WHERE batchnumber IN(
    SELECT batchnumber
    FROM( SELECT tbltestsperbatch.batchnumber,
          SUM(IIF (Test_completed = no, 1, 0)) AS CountNO
          FROM tbltestsperbatch
          GROUP BY tbltestsperbatch.batchnumber)
    WHERE CountNO = 0)
    ;

这是执行此任务的有效方法吗?我使用 2 个选择查询,然后执行更新查询。我觉得这应该更容易做到,但到目前为止还没有找到更好的解决方案。

标签: sqldatabasems-access

解决方案


推荐阅读