欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

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

更新时间: 2014-01-05 02:32:34 责任编辑: Author_N1

 

请高手前辈指点一句sql语句
表B的A_id=表A的id,如何用一句sql输出最后这样的表格?分不多,但请高手多多指教
表A 
id 时间 总价
 1 2011-05-31 13:00:45 100.38
 2 2011-06-08 14:48:18 208.69
 3 2012-04-02 12:55:01 98.99
 4 2012-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-05 50.00 0 50.38 100.38
 2011-06 208.69 0 0 208.69
 2012-04 30.00 40.00 78.99 148.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',时间)
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:32:34
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11203/
本文WWW.DOC100.NET DOC100.NET版权所有。