MySQL union all使用

对两个表不同的字段统计,

显示列:

时间 A表充值手续费 B表退款手续费

方法:

使用两个select语句,然后在union all关联;

重点:

如A表没有退款手续费字段,需要用0补上

B表没有充值手续费时也要补上,不然会合并成两列

SELECT t.MERCHANT_NO,sum(t.tfee),sum(t.rfee),t.date DATE from (
SELECT a.MERCHANT_NO, sum(a.TOPUP_FEE) tfee,0 rfee,DATE_FORMAT( a.CREATE_DATE, "%Y-%m-%d" ) date
FROM order_transfer_account a WHERE a.MERCHANT_NO ='chen001'
GROUP BY  a.MERCHANT_NO,DATE_FORMAT( a.CREATE_DATE, "%Y-%m-%d" )
UNION ALL
SELECT r.MERCHANT_NO,0 tfee, sum(r.REFUND_FEE) rfee,DATE_FORMAT( r.CREATE_DATE, "%Y-%m-%d" ) date FROM refund
r WHERE r.MERCHANT_NO ='chen001'
GROUP BY  r.MERCHANT_NO,DATE_FORMAT( r.CREATE_DATE, "%Y-%m-%d" )) t GROUP BY t.date,t.MERCHANT_NO ORDER BY t.date desc

参考:mySQL count多个表的数据实例详解

http://www.jb51.net/article/96254.htm

你可能感兴趣的:(MySQL)