首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

请好手前辈指点一句sql语句

2012-09-29 
请高手前辈指点一句sql语句表B的A_id表A的id,如何用一句sql输出最后这样的表格?分不多,但请高手多多指教

请高手前辈指点一句sql语句
表B的A_id=表A的id,如何用一句sql输出最后这样的表格?分不多,但请高手多多指教
表A 
id时间 总价
 12011-05-31 13:00:45100.38
 22011-06-08 14:48:18208.69
 32012-04-02 12:55:01 98.99
 42012-04-02 13:04:09 50.00
 
表B
A_id支付方式 金额
 1支票50.00
 1 现金50.38
 2支票 208.69
 3现金28.99 
 3支票 30.00
 3 银行卡40.00
 4现金50.00
 
 要求输出
 时间支票银行卡现金总计
 2011-0550.000 50.38100.38
 2011-06 208.6900 208.69
 2012-0430.0040.00 78.99148.99

[解决办法]
SELECT A.时间,SUM(CASE WHEN B.支付方式='支票' THEN B.金额 ELSE 0 END),
SUM(CASE WHEN B.支付方式='银行卡' THEN B.金额 ELSE 0 END),
SUM(CASE WHEN B.支付方式='现金' THEN B.金额 ELSE 0 END),MAX(A.总价)
FROM A INNER JOIN B ON B.A_id=A.id
GROUP BY A.时间
[解决办法]
select strftime('%Y-%m',时间),
sum(CASE 支付方式 WHEN '支票' THEN 金额 END) as 支票,
sum(CASE 支付方式 WHEN '银行卡' THEN 金额 END) as 银行卡,
sum(CASE 支付方式 WHEN '现金' THEN 金额 END) as 现金,
sum(金额) as 总计
from 表A,表B
where 表A.id=表B.id
group by strftime('%Y-%m',时间)

热点排行