SQL总计一列中的某些元素以创建另一列

昂99

我不确定该问题的标题,我只是想实现以下目标,如果已经有了答案,请提供链接或提供搜索标签,这样我就可以找到所需的内容对于。

我有一个如下
表1
日期|收款人姓名|类型|金额| ID
2017/07/01 |现金| c | 100 | A1
2017/07/01 |现金| c | 200 | A1
2017/07/01 |美元| f | 200 | A1
2017/07/01 |新币| f | 100 | A1
2017/07/01 |美元| f | 100 | A1
2017/07/01 |日元| f | 200 | A1
2017/07/02 |美元| f | 200 | A1
2017/07/02 |新币| f | 400 | A1
2017/07/02 |获| 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/07/01 | 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

预期结果
日期|现金|现金外汇|信用卡
2017/07/01 | 300 | 600 | 1200
2017/07/02 | 600 | 900 | 800

预期结果表
1.日期列,按表1和2的日期列分组。2
.现金列,表1的总和为'c'3
.现金外汇列,表类型的总和为'f'。4.
c。现金列。卡栏,表2 c.cards列的总和

我能够生成预期结果表,日期,现金和现金外汇列,但是当我尝试加入表以生成c.cards列时,我找不到预期的答案....请帮助我,谢谢!

普雷迪普

您可以使用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

casesum汇总中的语句amount基于type

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章