>데이터 베이스 >MySQL 튜토리얼 >통합 시간 보고서를 위해 KnownHours와 UnknownHours 테이블을 어떻게 결합할 수 있습니까?

통합 시간 보고서를 위해 KnownHours와 UnknownHours 테이블을 어떻게 결합할 수 있습니까?

DDD
DDD원래의
2024-12-29 08:32:14332검색

How Can We Combine KnownHours and UnknownHours Tables for a Unified Hours Report?

통합 출력을 위한 테이블 결합

소개:
여러 테이블을 처리할 때 다음이 필요합니다. 포괄적이고 의미 있는 결과를 제공하기 위해 이들을 병합합니다. 테이블 결합에는 조인, 합집합, 집계 등의 기술이 포함됩니다.

문제 설명:
당면 작업은 KnownHours와 UnknownHours라는 두 테이블을 단일 출력으로 결합하는 것입니다. 월을 무시하고 ChargeNum 및 CategoryID별로 시간을 그룹화합니다.

표 세부 정보:

Table Column Description
KnownHours ChargeNum Unique charge number
KnownHours CategoryID Category associated with the charge
KnownHours Month Month when the charge was incurred
KnownHours Hours Known hours for the charge
UnknownHours ChargeNum Unique charge number
UnknownHours Month Month when the charge was incurred
UnknownHours Hours Unknown hours for the charge

원하는 출력:
예상 출력은 다음 구조의 단일 테이블입니다.

Table Column Description
Consolidated ChargeNum Unique charge number
Consolidated CategoryID Category associated with the charge or 'Unknown'
Consolidated Hours Total hours for the charge

해결 방법:
원하는 결과를 얻으려면 SQL에서 UNION 연산을 활용하겠습니다. UNION은 여러 쿼리의 결과를 단일 테이블로 결합합니다. 이 경우 KnownHours 테이블에 대해 하나, UnknownHours 테이블에 대해 하나, 두 개의 쿼리를 실행합니다. 쿼리는 각 ChargeNum 및 CategoryID(UnknownHours의 경우 'Unknown')에 대한 시간을 집계합니다.

KnownHours 테이블에 대한 첫 번째 쿼리:

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID

UnknownHours 테이블에 대한 두 번째 쿼리 :

SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum

마지막으로 UNION을 사용하여 이 두 쿼리의 결과를 결합합니다. ALL:

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
UNION ALL
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum

이 UNION ALL 작업은 두 쿼리의 결과를 단일 테이블로 연결하여 원하는 출력을 제공합니다.

위 내용은 통합 시간 보고서를 위해 KnownHours와 UnknownHours 테이블을 어떻게 결합할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.