2017-07-03 1 views
2

私はこの質問のタイトルがわからない、私はちょうど以下のようなものを達成したい、既に回答がある場合は、検索タグは、私が探している方向に向いています。SQLは、列内の特定の要素を集計して別の列を作成します

私は、以下のように
表1
日付をテーブルを持っている| payname |タイプ|量| ID
2017年7月1日|現金| c | 100 | A1
2017/07/01 |現金| c | 200 | A1
2017/07/01 | USD | f | 200 | A1
2017/07/01 | SGD | f | 100 | A1
2017/07/01 | USD | f | 100 | A1
2017/07/01 |円| f | 200 | A1
2017/07/02 | USD | f | 200 | A1
2017/07/02 | SGD | f | 400 | A1
2017/07/02 | WON | f | 300 | A1
2017/07/02 |現金| c | 100 | A1
2017/07/02 |現金| c | 300 | A1
2017/07/02 |現金| c | 200 | A1

表2
日| C.Cards | ID
2017年7月1日| 100 | A1
2017/07/01 | 200 | A1
2017/07/01 | 300 | A1
2017/07/01 | 100 | A1
2017/07/01 | 200 | A1
2017/07/01 | 300 | A1
2017/07/02 | 100 | A1
2017/07/02 | 100 | A1
2017/07/02 | 200 | A1
2017/07/02 | 100 | A1
2017/07/02 | 200 | A1
2017/07/02 | 100 | A1

期待される結果
日|現金|現金為替| C.Cards
2017年7月1日| 300 | 600 | 1200
2017/07/02 | 600 | 900 |表1 & 2日付列
2キャッシュカラム、「C」
3.現金為替カラムの表1種類の和、合計でグループ化された結果表
1日欄、期待800

「F」
4. c.cards列のテーブルタイプ、テーブル2 c.cards列の合計

私が期待される結果テーブルを生成することができるよ、日付&現金&現金為替コラムが、ときに私のc.cards列を生成するテーブルに参加しようとすると、私は期待された答えを見つけることができません....私はみんな、感謝を助けてください!

+2

https://stackoverflow.com/questions/9574721/using-sum-in-an-sql-query役立つことを望みます。 –

答えて

2

あなたはIIFは、SQL2012機能です(sum集計内部conditional aggregation方法

select sum(case when type = 'C' then amount else 0 end) as cash, 
     sum(case when type = 'F' then amount else 0 end) as [Cash-Forex] 
From Yourtable 

case文はあなたがこれを利用してIIFを達成することができます言及したtype

+0

ありがとう、Prdp!それはうまくいく! – Ngong99

+0

こんにちは、私はちょうど私の質問を変更した、それを見て、私に正しいクエリを提供していただけますか?上記のクエリを使用して生成された最初の3列...しかし、私は1つの列を生成するためにテーブルに参加しようとすると、私は期待された答えを得るdidnt ...ありがとう! – Ngong99

0

に基づいてamountを検討します使用してそれを達成することができます)

select 
     sum(iif(type = 'C' ,amount,0)) as cash, 
     sum(iif(type = 'F' ,amount,0)) as [Cash-Forex] 
    From Yourtable 
関連する問題