이벤트 테이블을 통해 반복되는 쿼리가 있습니다. 첫 번째 테스트가 통과되면 첫 번째 테스트에만 관심이 있습니다. 예를 들어 다음과 같은 경우 :mysql을 사용하여 레코드를 제외하려면 어떻게해야합니까?
s/n test_result first test taken and passed
DX123 Terminated 2016-06-16 09:33:38
DX124 Passed 2016-06-16 10:12:01
DX125 Failed 2016-06-16 08:27:48
DX126 Passed 2016-06-16 08:28:16
DX127 Passed 2016-06-16 08:25:02
그러면 우리가 원하는 것은 통과 한 첫 번째 테스트뿐입니다. DX125가 30 분이 지난 후에 데이터 세트에 DX125를 원하지 않습니다.
그래서 위의 표는 반환 : 널 (null)로 실패한 테스트를 반환select serial_number, test_name,
IF(test_result = 'passed', min(START_DATE_TIME), null) as 'first test taken and passed'
from
test_results
where
(test_time > '2016-06-16 00:00:00' AND test_time < '2016-06-16 23:59:59')
group by serial_number, test_name
order by serial_number asc;
, 나는 오히려 전혀 존재하지 않았다 것 : 내가 사용 해봤
s/n test_result first test taken and passed
DX124 Passed 2016-06-16 10:12:01
DX126 Passed 2016-06-16 08:28:16
DX127 Passed 2016-06-16 08:25:02
. 이 경우에는 if
문을 false로 설정하면 아무것도 반환하지 않으므로 우아하게 처리됩니다. 할 수 있습니까?
감사합니다.
입력 데이터 및 쿼리의 열 이름이 일치하지 않으며 샘플 출력이 없습니다. 원하는 결과물을 보여줌으로써 질문을 명확히 할 수 있습니까? –
행'DX127 합격 2016-06-16 08 : 25 : 02'을 원했습니까? – Blank
테스트 날짜 (test_time) = '2016년 6월 16일'및 test_result가 = 의해 그룹을 '통과' test_results 에서 첫 테스트 취하여 전달 '등이 선택 SERIAL_NUMBER, test_name, 분 (START_DATE_TIME) serial_number, test_name order by serial_number asc; –