日期:2014-05-16  浏览次数:20777 次

mysql 多条记录判断相加减合并一条
code pay payflag
  00001 100.00 0
  00001 50.00 1
  00001 50.00 0
  00002 200.00 0
  
  pay 是 decimal,payflag 0 是付款, 1 是退款
  把code相同并payflag=0的pay相加减去payflag=1的pay得到下面这下的数据
 
  code pay  
  00001 100.00  
  00002 200.00  

  第一次发帖,急着要。。在线等。。。

------解决方案--------------------
select code,sum(if(payflag=0,pay,-1*pay))
from tt group by code
------解决方案--------------------
SQL code
SELECT `code`,SUM(IF(payflag=0,pay,0))-SUM(IF(payflag=1,pay,0)) AS pay 
FROM `tablename` 
GROUP BY `code`

------解决方案--------------------
SQL code
select `code`,sum((0.5-payflag)*2*pay) 
from table
group by `code`