2015-04-11 4 views
-1

У меня есть таблица «Test_Results», который выглядит следующим образом одно:Как получить записи, которые всегда имеют определенное значение в MySQL

Test_Results

|ID|Test_Name |Status | 
|0 | test_1 |passed | 
|1 | test_2 |failed | 
|2 | test_3 |skipped| 
|3 | test_4 |passed | 
|4 | test_5 |passed | 
|5 | test_1 |passed | 
|6 | test_2 |failed | 
|7 | test_3 |passed | 
|8 | test_4 |failed | 
|9 | test_5 |passed | 
|10| test_1 |passed | 
|11| test_2 |failed | 
|12| test_3 |passed | 
|13| test_4 |passed | 
|14| test_5 |passed | 

Важно то, что test_2 всегда имеют статус «failed» и test_5 всегда имеют статус «прошло».

Итак, мой вопрос заключается в том, как получить test_names, которые всегда имеют определенный статус? Например, получите тесты, которые всегда терпели неудачу.

До сих пор я только придумывал строительные объекты в Java. Но не знаю, как написать такой запрос MySQL.

Спасибо.

+0

Сделайте скрипт sql. вы должны сделать что-то вроде select_имя_имя, статус из test_results, где status = 'failed' group by test_name, status – kurt

+0

Сначала прочитайте учебник по SQL. – axiac

ответ

0

Для получения тестов, которые всегда были неудачными, вы можете использовать этот синтаксис:

SELECT Test_Name 
FROM Test_Results 
GROUP BY Test_Name 
HAVING 
    MAX(Status)='Failed' 
    AND MIN(Status)='Failed' 

получить тесты, которые имеют особый статус (не удался или прошел), вы можете использовать этот запрос:

SELECT Test_Name, MAX(Status) AS Status 
FROM Test_Results 
GROUP BY Test_Name 
HAVING COUNT(DISTINCT Status)=1 
+0

Большое вам спасибо @fthiella! – Michael

Смежные вопросы