SQL: как суммировать два значения из разных таблиц [закрыто]
ОК.
меня поставили на проект на работе, и хотя у меня есть некоторые навыки SQL, они очень ржавые.
один из сценариев на работе оставил мне несколько таблиц со значениями, которые мне нужно суммировать. Они также не связаны, но порядок одинаков во всех таблицах.
в принципе, я хотел бы взять эти две таблицы:
CASH TABLE
London 540
France 240
Belgium 340
CHEQUE TABLE
London 780
France 490
Belgium 230
чтобы получить такой вывод, как этот, для подачи в график применение:
London 1320
France 730
Belgium 570
пожалуйста, помогите.
4 ответов
select region,sum(number) total
from
(
select region,number
from cash_table
union all
select region,number
from cheque_table
) t
group by region
SELECT (SELECT SUM(London) FROM CASH) + (SELECT SUM(London) FROM CHEQUE) as result
и так далее и так далее.
вы также можете попробовать это в sql-server !!
select a.city,a.total + b.total as mytotal from [dbo].[cash] a join [dbo].[cheque] b on a.city=b.city
или попробуйте использовать sum, union
select sum(total) as mytotal,city
from
(
select * from cash union
select * from cheque
) as vij
group by city
для вашей текущей структуры вы также можете попробовать следующее:
select cash.Country, cash.Value, cheque.Value, cash.Value + cheque.Value as [Total]
from Cash
join Cheque
on cash.Country = cheque.Country
Я думаю, что предпочитаю объединение между двумя таблицами и группу по названию страны, как упоминалось выше.
но я бы рекомендовал нормализовать таблицы. В идеале у вас будет таблица стран с идентификатором и именем, а также Таблица платежей с: CountryId (FK в страны), всего, тип (наличные / чек)