다음 코드는 sumHours 필드에 대해 잘못된 값을 반환합니다. GROUP BY가 실행되면 sumHours 필드를 준비하는 것처럼 보입니다.두 개의 LEFT JOIN과 GROUP BY를 사용할 때 잘못된 SUM
SELECT mmr_ID, mmr_projectName, SUM(mmr_hoursWorked.mmr_hoursWorked_hours) AS sumHours
FROM mmr
LEFT JOIN mmr_hoursWorked
ON mmr.mmr_ID = mmr_hoursWorked.mmr_hoursWorked_project AND mmr_hoursWorked.mmr_hoursWorked_mm = "P90826"
LEFT JOIN mmr_notes
ON mmr.mmr_ID = mmr_notes.mmr_notes_MMR_ref AND mmr_notes.mmr_notes_author = "P90826"
WHERE mmr_mmAssigned = "P90826" AND mmr_projectStatus != 1 OR mmr_notes.mmr_notes_author = "P90826" AND mmr_projectStatus != 1
GROUP BY mmr_ID
실제 결과
mmr_ID - 35
mmr_projectName - 프로젝트
sumHours - 140.2
예상 결과
mmr_ID - 35
mmr_projectName - 프로젝트
sumHours - 35.05
샘플 데이터, 예상 결과 및 실제 결과를 보여주십시오. 또한 코드가 코드로 나타나도록 질문을 편집하십시오. html 태그가 엉망인 것처럼 보입니다. –
글쎄, 모든 열을 선택한 다음 하나씩 만 그룹화합니다. 이 비 ANSI 동작은 MySQL에서 허용되며, 일관된 결과를 원한다면 실제로는 의미가 없습니다. – Lamak
조인은 조인에 영향을주는 행 수를 곱하는 문제입니다. 그러나 열이 어디서 왔는지 불분명하기 때문에 쿼리를 수정할 수 없습니다. –