다른 where 절을 기반으로 동일한 열의 합계를 반환하려면이 select 쿼리가 필요합니다. 기본적으로 이러한 여러 선택 쿼리를 병합하는 방법을 찾고 있습니다. 아래를 봐주세요. 어떤 도움이라도 대단히 감사합니다!동일한 열에서 여러 합계
DECLARE @prEndDate smalldatetime
SET @prEndDate='2014-01-05'
SELECT Employee, SUM(Amount) as Deduction
FROM bPRDT
WHERE [email protected]
AND EDLCode=100 AND EDLType='D'
GROUP BY Employee
SELECT Employee, SUM(Amount) as DeductionPlus
FROM bPRDT
WHERE [email protected]
AND EDLCode=101 AND EDLType='D'
GROUP BY Employee
SELECT Employee, SUM(Amount) as Match
FROM bPRDT
WHERE [email protected]
AND EDLCode=600 AND EDLType='L'
GROUP BY Employee
SELECT Employee, SUM(Amount) as MatchPlus
FROM bPRDT
WHERE [email protected]
AND EDLCode=601 AND EDLType='L'
GROUP BY Employee
마지막으로 수정되었습니다. 당신은 UNION
또는 CASE WHEN
절을 사용할 수
DECLARE @prEndDate smalldatetime
SET @prEndDate ='2013-12-29'
SELECT
REPLACE(c.SSN,'-',''),
SUM(CASE WHEN a.EDLType='D' AND a.Amount > 0 AND (a.EDLCode=100 OR a.EDLCode=101) THEN a.Amount ELSE 0 END) AS Deferral,
SUM(CASE WHEN a.EDLType='L' AND a.Amount > 0 AND (a.EDLCode=600 OR a.EDLCode=601) THEN a.Amount ELSE 0 END) AS EmployerMatch,
SUM(CASE WHEN a.EDLType='D' AND a.Amount > 0 AND (a.EDLCode=100 OR a.EDLCode=101) THEN a.SubjectAmt ELSE 0 END) AS Compensation415,
SUM(CASE WHEN a.EDLType='D' AND a.Amount > 0 AND (a.EDLCode=100 OR a.EDLCode=101) THEN a.SubjectAmt ELSE 0 END) AS PlanFullYearCompensation,
SUM(CASE WHEN a.EDLType='E' AND a.Amount > 0 AND (a.EDLCode=1 OR a.EDLCode=2 OR a.EDLCode=3) THEN a.Hours ELSE 0 END) AS PlanHours
FROM bPRDT a
JOIN (SELECT DISTINCT SSN, Employee FROM bPREH) c ON a.Employee=c.Employee
WHERE [email protected]
GROUP BY c.SSN
ORDER BY Deferral DESC, c.SSN ASC
[UNION] (http://www.w3schools.com/sql/sql_union.asp)을 확인하십시오. –