例:(本功能经过测试可以正常使用,红色变字段名)
发票表:
id 金额 日期 类型
1 500 2005-1-1 增值税发票
2 600 2005-7-9 增值税发票
3 300 2005-2-3 普通发票
4 1000 2005-7-2 普通发票
5 200 2005-6-6 地税发票
想按发票类型转为列,得到结果集:
id 日期 增值税发票金额Fix 普通发票金额Fix 地税发票金额Fix
1 2005-1-1 500 0 0
2 2005-7-9 600 0 0
3 2005-2-3 0 300 0
4 2005-7-2 0 1000 0
5 2005-6-6 0 0 600
另外,还需要一条查询语句来汇总每种类型的金额总数
增值税发票金额1100,普通发票金额1300, 地税发票金额 600
--------------------------------------------------------------------------------------------
select
id,
日期,
(case 类型 when '增值税发票' then 金额 else 0 end) as 增值税发票金额Fix,
(case 类型 when '普通发票' then 金额 else 0 end) as 普通发票金额Fix,
(case 类型 when '地税发票' then 金额 else 0 end) as 地税发票金额Fix
from
发票表
compute sum(增值税发票金额Fix),sum(普通发票金额Fix),sum(地税发票金额Fix)