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_name
和 code
对的组合,没有失败作为 '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
我需要编写一个查询,该查询将在一个测试失败时产生 "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_name
和 code
对的组合,没有失败作为 '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