2017-07-03 77 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 | 800

預期的結果表
1.日期欄,通過表中的分組1 & 2日期列
2.現金列,表1類型「C」
3.現金外匯柱,總和的總和「F」
4. c.cards列,表2 c.cards列的總和

我能夠產生預期的結果表,日期&現金&現金外匯列,但是當我的表類型嘗試連接表來生成c.cards列,我找不到預期的答案....請幫助我的傢伙,謝謝!

+2

請檢查這一個: https://stackoverflow.com/questions/9574721/using-sum-in-an-sql-query希望有幫助。 –

回答

2

可以使用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聲明sum骨料內基於將考慮amount實現它提到type

+0

謝謝Prdp!這工作! – Ngong99

+0

嗨,先生,我剛剛修改了我的問題,請你看看它,併爲我提供正確的查詢?我使用上面的查詢生成的前3列...但是當我嘗試連接表來生成1更多列時,我沒有得到預期的答案...謝謝! – Ngong99

0

就可以實現這一點使用IIF(IIF是SQL2012功能)

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