2013-10-06 4 views
0

두 테이블의 수입과 지출이 있습니다. 비용과 수입의 합계를 계산하고 두 합계의 차이를 계산해야합니다.한 테이블의 열 합계와 다른 테이블의 열 합계의 차이 선택

나는 쿼리를 실행할 때, 그것은 그 사용자 아이디의 소득의 합을 복용하고 모든 사람의 경비를 차감되며, 소득 만 테이블에 사용자 아이디에이 현재

SELECT (SUM(a.Amount)-(SELECT SUM(i.Amount) 
FROM incomes i GROUP BY i.UserId)) Expense, 
a.UserId FROM amount a GROUP BY a.UserId 

을 사용하고 있습니다.

나는 개인적인 차이가 필요합니다.

답변

0

당신은 부속 사용할 수 있습니다

SELECT (q.Amount - q.Expense) AS `diff` FROM 
(
(SELECT (SUM(a.Amount) 
FROM amount a GROUP BY a.UserId) AS `Amount`, 
(SELECT SUM(i.Amount) 
FROM incomes i GROUP BY i.UserId) AS Expense, 
) q 

OR로는

SELECT (q.Amount - q.Expense) AS `diff` FROM 
(
SELECT SUM(a.Amount) AS `Amount` ,SUM(i.Amount) AS `Expense` 
FROM amount 
JOIN incomes i ON (a.UserId=i.UserId) 
GROUP BY i.UserId 
) q 

가입 아니면 FULL OUTER 시도가 존재하지 않는 한 가입하지만 여전히 당신은 UNION

사용하여 동일한 작업을 수행 할 수 있습니다
SELECT (q.Amount - q.Expense) AS `diff` FROM 
(
(SELECT (SUM(a.Amount) AS `Amount` , NULL AS `Expense` 
FROM amount a GROUP BY a.UserId) 
UNION ALL 
(SELECT NULL AS `Amount`, SUM(i.Amount) AS Expense 
FROM incomes i GROUP BY i.UserId) 
) q 
관련 문제