Ответ 1
select region,sum(number) total
from
(
select region,number
from cash_table
union all
select region,number
from cheque_table
) t
group by region
Хорошо.
Я был вовлечен в проект на работе, и хотя у меня есть некоторые навыки SQL, они очень ржавые.
Один из сценариев работы оставил меня с несколькими таблицами со значениями, которые мне нужно подвести итогами. Они также не связаны, но порядок одинаковый во всех таблицах.
В принципе, я хотел бы взять две таблицы:
CASH TABLE
London 540
France 240
Belgium 340
CHEQUE TABLE
London 780
France 490
Belgium 230
Чтобы получить такой вывод, чтобы подать заявку на графическое приложение:
London 1320
France 730
Belgium 570
Пожалуйста, помогите.
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-сервере!
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 в страны), Total, Type (cash/check)