У меня есть две таблицы -
ДОХОД
Id - ProjectId - inAmount
1 - 2 200
2 - 2 100
3 - 1 100
4 - 2 100
5 - 1 200
Расходы
Id - ProjectId - exAmount
1 - 2 50
2 - 1 100
3 - 2 120
4 - 1 70
Теперь я хочу эти результаты
Результат
ProjectId - Total Income - Total Expense - Difference
1 result result result
2 result result result
Помните: всю эту работу я должен выполнить в SQL
Я сделал общий доход, общие расходы, но как лучше отразить разницу?
----- отредактировано ......
Я пробовал это
SELECT sum(ex_amount) as expense,
sum(in_amount) as income,
sum(in_amount) - sum(ex_amount) as Difference,
project_name
FROM expense,
project,
income
WHERE expense.projectId = Project.id
AND income.ProejctId = Project.id
group by mh_name";
отредактировано второй раз
Хорошо, пожалуйста, поймите оригинальную логику. Таблица расходов имеет много записей связи с проектами и таблицы доходов также имеют то же самое, теперь я хочу, чтобы результат общего дохода на проект, общих расходов на проект и разницы на проект
напишите свой ответ, используя эти поля
ДОХОД
in_id - in_source - in_amount
1 - 2 200
2 - 2 100
3 - 1 100
4 - 2 100
5 - 1 200
Расходы
ex_id - mh_id - ex_amount
1 - 2 50
2 - 1 100
3 - 2 120
4 - 1 70
main_head или проект
mh_id - mh_name
1 - abc
2 - ase
3 - czz
4 - xys
Примечание in_source = mh_id
В настоящее время я использую следующие запросы
для общего дохода на проект
SELECT sum(in_amount) as amount, mh_name FROM income, main_head WHERE income.in_source = main_head.mh_id group by mh_name Order By amount desc
общие расходы на проект
SELECT sum(ex_amount) as amount, mh_name FROM expense, main_head WHERE expense.mh_id = main_head.mh_id group by mh_name Order By amount desc
РЕШЕНО МНЕ ....
SELECT
mh_name,
income - expense AS difference
FROM
(SELECT sum(in_amount) AS income, in_source FROM income GROPU BY in_source) AS t1,
(SELECT sum(ex_amount) AS expense, mh_id FROM expense GROUP BY mh_id) AS t2,
(SELECT * FROM main_head) AS t3
WHERE
t1.in_source = t2.mh_id
AND
t1.in_source=t3.mh_id