はい。
私は仕事でプロジェクトに参加しました、そして、私はいくらかの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
助けてください。
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
上記のように、2つのテーブル間の結合、および国名によるグループを好むと思います。
しかし、テーブルを正規化することもお勧めします。理想的には、IDと名前を持つ国テーブルと、CountryId(国へのFK)、合計、タイプ(現金/小切手)を持つ支払いテーブルがあるはずです。