web-dev-qa-db-ja.com

SQL:異なるテーブルの2つの値を合計する方法

はい。

私は仕事でプロジェクトに参加しました、そして、私はいくらかのSQLスキルを持っているけれども、それらは非常にさびています。

職場のシナリオの1つでは、要約する必要のある値を含む多数のテーブルが残っています。リンクもされていませんが、順序はすべてのテーブルで同じです。

基本的に、この2つのテーブルを使用します。

CASH TABLE  
London  540
France  240
Belgium 340

CHEQUE TABLE
London  780
France  490
Belgium 230

このような出力を取得してグラフ作成アプリケーションに入力するには:

London  1320
France  730
Belgium 570

助けてください。

23
Uchenna Ebilah
select region,sum(number) total
from
(
    select region,number
    from cash_table
    union all
    select region,number
    from cheque_table
) t
group by region
48
Jonysuise
SELECT (SELECT SUM(London) FROM CASH) + (SELECT SUM(London) FROM CHEQUE) as result

「などなど。

16
vector

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 
1
vhadalgi

現在の構造については、次を試すこともできます。

select cash.Country, cash.Value, cheque.Value, cash.Value + cheque.Value as [Total]
from Cash
join Cheque
on cash.Country = cheque.Country

上記のように、2つのテーブル間の結合、および国名によるグループを好むと思います。

しかし、テーブルを正規化することもお勧めします。理想的には、IDと名前を持つ国テーブルと、CountryId(国へのFK)、合計、タイプ(現金/小切手)を持つ支払いテーブルがあるはずです。

0
Mathew Collins