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 в страны), всего, тип (наличные / чек)