sql语句问题 有两张表1.卡表 1)卡号 2)积分2.消费表 1)卡号 2)消费金额消费表里的卡号可能是有多条重复的(多次消费)我想写一个sql语句把消费金额累加后(多条的情况下,一条就不用累加了)加到卡表里的积分中谢谢各位,解决就给分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 update 卡表 a inner join (select 卡号,sum(消费金额) as sum消费金额 from 消费表 group by 卡号) b on a.卡号=b.卡号set a.积分=a.积分+b.sum消费金额 或者update 卡表set 积分=积分+(select sum(消费金额) from 消费表 where 卡号=卡表.卡号) 这种写法有错的,若卡表中有的记录而在对应消费表里没有对应记录的话,则会将卡表中原来有的数据更新为null的,请注意!!! 改成这样就可以了:update 卡表set 积分=积分+(select sum(消费金额) from 消费表 where 卡号=卡表.卡号) where exists (select 1 from 消费表 where 卡号=卡表.卡号) 如果消费表没有对应消费记录可以默认消费金额为0 ifnull(消费金额,0) 求postgreSQL 学习资源 求助,据说C#使用MySql不需要安装任何东西只需要导入一个DLL文件就可以了,不知道是不是真的 再次请教mysql 一个mysql查询问题。笔试题,大家来看看 乱码问题。。谁帮看看下。。 大家好,请帮我看看这个代码 为何Mysql服务总是自动停止? 关于linux下mysql的安装问题 请大家推荐一postgresql迁移工具,多谢!! select * from...和select xx,xx, xxx,xx from ...执行效率上有没有大的区别 mysql函数 加分100 网站的分类思想
set a.积分=a.积分+b.sum消费金额
update 卡表
set 积分=积分+(select sum(消费金额) from 消费表 where 卡号=卡表.卡号)
这种写法有错的,若卡表中有的记录而在对应消费表里没有对应记录的话,则会将卡表中原来有的数据更新为null的,请注意!!!
set 积分=积分+(select sum(消费金额) from 消费表 where 卡号=卡表.卡号)
where exists (select 1 from 消费表 where 卡号=卡表.卡号)
如果消费表没有对应消费记录可以默认消费金额为0
ifnull(消费金额,0)