합계를 위해 여러 테이블의 데이터 결합: 잘못된 결과 처리
SQL 쿼리에서 세 개의 열로 구성된 테이블을 검색하려고 합니다. : "PROJECT", "SUM_AP" 및 "SUM_INV" 그러나 집계 프로세스의 그룹화로 인해 잘못된 결과가 발생했습니다.
잘못된 결과의 원인:
쿼리의 "GROUP BY" 절은 다음을 기준으로 값을 결합합니다. "AP.[PROJECT]" 열에 있습니다. 이 집계 프로세스는 본질적으로 중복된 "값" 항목을 합산하여 결과가 부풀려지게 됩니다.
해결책: 하위 선택 쿼리 사용
이 문제를 해결하기 위해 다음을 수정할 수 있습니다. 하위 선택을 사용한 쿼리 쿼리:
SELECT AP1.[PROJECT], (SELECT SUM(AP2.Value) FROM AP AS AP2 WHERE AP2.PROJECT = AP1.PROJECT) AS SUM_AP, (SELECT SUM(INV2.Value) FROM INV AS INV2 WHERE INV2.PROJECT = AP1.PROJECT) AS SUM_INV FROM AP AS AP1 INNER JOIN INV AS INV1 ON (AP1.[PROJECT] =INV1.[PROJECT]) WHERE AP1.[PROJECT] = 'XXXXX' GROUP BY AP1.[PROJECT]
설명:
이 수정된 쿼리는 고유한 "PROJECT" 값만 그룹화되고 합계가 올바르게 계산되어 의도한 결과를 제공합니다.
위 내용은 여러 테이블을 결합할 때 SQL 합계 계산이 잘못된 이유는 무엇이며 하위 쿼리를 사용하여 이를 수정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!