select a.消费单号 消费单号, a.消费金额 消费金额, sum(a.现金) 现金, sum(a.IC卡) IC卡 from (select 消费单号, 消费金额, case 付款模式 when '现金' then 消费金额 else 0 end '现金', case 付款模式 when 'IC卡' then 消费金额 else 0 end 'IC卡'from A表, B表where A表.消费单号=B表.消费单号) as agroup by a.消费单号 , a.消费金额
select 消费单号 , max(case 付款模式 when '现金' then 消费金额 else null end) 现金, max(case 付款模式 when 'IC卡' then 消费金额 else null end) IC卡, (max(case 付款模式 when '现金' then 消费金额 else 0 end) + max(case 付款模式 when 'IC卡' then 消费金额 else 0 end))from Bgroup by 消费单号