Sql查询比较多条记录之间的结果并提供结果

Sql query to compare the result between multiple records and provide a result

我需要编写一个查询,该查询将在一个测试失败时产生 "fail" 条件。测试结果列在“失败”和“通过”列中。一个制造商的产品可以进行多次测试。我的数据是这样的:

MFG Name  | Code | Breaker | Fail | Pass
-----------------------------------------
ABC           R      2        0       1
ABC           R      1        1       0

无论 Breaker 值如何,如果一个测试失败,则整个批次都会失败。 我要找的结果如下:

  MFG Name  | Code | Result
-------------------------------------------
ABC             R     FAIL

如果您能提供任何帮助或见解,我们将不胜感激。

尝试:

select      mfg_name,
            code,
            case when sum(fail) > 0 then 'FAIL' else 'PASS' end as result
from        tbl
group by    mfg_name,
            code

这假设您要显示 (mfg_namecode 对的组合,没有失败作为 'PASS',如果只有失败,您将添加 having sum(fail) > 0)

这是聚合查询。假设 fail 只取两个值(0 和 1):

select MFGName, Code,
       (case when max(fail) = 1 then 'FAIL' else 'PASS' end) as Result
from tests
group by MFGName, Code;

Joeldub 给你。

DECLARE @isFail AS INT

@isFail = (SELECT COUNT(FAIL) FROM FIRSTTABLE WHERE MFG NAME = 'ABC' AND FAIL = 1)

IF @isFail > 0
     BEGIN
        INSERT INTO SECONTABLE(with breaker) (Result) VALUES ('FAIL') WHERE WHERE MFG Name = 'ABC'
        ---- OR IF RECORD EXISTS
        UPDATE SECONDTABLE(with breaker) Result = 'FAIL' WHERE MFG Name = 'ABC'
     END
ELSE
     BEGIN
        INSERT INTO SECONTABLE(with breaker) (Result) VALUES ('PASS') WHERE WHERE MFG Name = 'ABC'
        ---- OR IF RECORD EXISTS
        UPDATE SECONDTABLE(with breaker) Result = 'PASS' WHERE MFG Name = 'ABC'
     END