데이터베이스 두 개가 있습니다. 하나는 운전자 명단이며 하나는 위반 목록입니다. 각 위반 상태는 노란색 또는 빨간색으로 표시되며 특정 드라이버에있는 노란색 위반 및 빨간색 위반 횟수를 계산해야하며 빨간색 또는 노란색 ASC 또는 DESC로 주문합니다.SQL 중복 값이있는 모든 행을 기본 키로 나누어 쿼리
드라이버 테이블 : AutoID (기본 키 위반 나타난 driverID에 외래 키) 는 employerID
을 클라이언트 ID위반 테이블 : violationID (기본 키) 상태 driverID (드라이버 테이블 autoID에 외래 키)
나는 아래의 쿼리는 모든 빨간색 또는 노란색 위반을 얻기 위해 실행
SELECT d.autoID, d.clientID, v.status FROM edsp_drivers d, edsp_violations v
WHERE d.employerID='000000028' AND d.autoID=v.driverID
AND (v.status = 'yellow' OR v.status='red')
ORDER BY d.autoID ASC
개
결과를 다음과 같이
내가 빨강/노랑 DESC에 의해 드라이버와 ORDER별로 그룹화 모든 노란색 또는 빨간색 경고를 계산하기 만하면됩니다autoID clientID status
000000206 000000015 Yellow
000000206 000000015 Red
000000206 000000015 Yellow
000000206 000000015 Yellow
000000206 000000015 Yellow
000000206 000000015 Yellow
000000206 000000015 Yellow
000000206 000000015 Yellow
000000206 000000015 Yellow
000000206 000000015 Yellow
000000207 000000015 Yellow
000000207 000000015 Yellow
000000367 000000015 Yellow
000000367 000000015 Yellow
000000367 000000015 Red
000000368 000000015 Red
000000369 000000015 Yellow
000000369 000000015 Yellow
000000369 000000015 Red
000000369 000000015 Yellow
000000369 000000015 Yellow
000000369 000000015 Yellow
000000398 000000015 Yellow
000000398 000000015 Yellow
- 나는 끼 었어 곳입니다.
누군가 도움을 받으시겠습니까?
거의 다. 실제로 가장 높은 수의 빨간색 알림을 주문하고 가장 높은 노란색 알림을 주문하고 싶었습니다. – nematoth
방향에 감사드립니다. 나는 다음과 같이 수정했다. SELECT v.driverID edsp_drivers가 가 edsp_violations가 d.autoID = v.driverID AND (v.status = '황색'v.status OR = 'ON V 자 JOIN에서 d 카운트 AS, v.status, COUNT (*) 빨간색 ') WHERE d.employerID ='000000028 ' GROUP BY v.driverID, v.status ORDER BY v.status ASC, 카운트 DESC가 – nematoth
인 경우에만이 문제가 발생합니다. 빨간색 또는 노란색 경고. 어떻게 해결할 수 있을까요? 이 클라이언트 ID에 대해 시스템의 모든 드라이버를 목록 맨 위에 가장 많은 빨간색 경고가있는 드라이버와 함께 나열하려고합니다. – nematoth