select t.客户姓名,sum(case when t.收款类型='首款' then t.金额 else 0 end as '首款'),sum(case when t.收款类型='尾款' then t.金额 else 0 end as '尾款') from table t group by t.客户姓名
这段sql的意思 是 查询出所有客户收款信息 然后按客户分组 分组后 然后将这个客户的所有首款的金额放在一组 然后聚合 组成首款字段 所有尾款金额 放在一组 然后sum 聚合 组成尾款字段
最终查出
统计的时候 或者 做运算的时候非常有用
如果需要列转行 可以使用union方式 比如我们上面这个表
select t.客户姓名,t.首款 from table t where type='首款' union select t.客户姓名,t.尾款 from table t where type='尾款'