为了账号安全,请及时绑定邮箱和手机立即绑定

如何获得 UNION ALL 的总和

如何获得 UNION ALL 的总和

PHP
慕沐林林 2021-08-28 16:29:24
如何获取UNION ALL查询中所有行的总和。我正在尝试对每个 UNION 表的列求和,以及查询执行后的结果总和。$select = $db->prepare("SELECT SUM(money) AS cash FROM table1 WHERE money > 0 GROUP BY id                         UNION ALL                         SELECT SUM(payment) AS cash FROM table2 WHERE payment > 0 GROUP BY id                        UNION ALL                        SELECT SUM(pay) AS cash FROM table3 WHERE pay > 0 GROUP BY id                         ");        $select ->execute();        for($i=0;             $rows = $select ->fetch();             $i++){        $result = $rows['sum(cash)'];
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

仅使用 mysql 的可能解决方案如下,它返回表中所有三列总和的单个值:


SELECT SUM(pt.psum) AS tsum FROM 

(SELECT SUM(money) AS psum FROM table1 WHERE money > 0 GROUP BY id

UNION ALL

SELECT SUM(payment) AS psum FROM table2 WHERE money > 0 GROUP BY id

UNION ALL

SELECT SUM(pay) AS psum FROM table3 WHERE money > 0 GROUP BY id) pt

为清楚起见,

  • psum:部分和

  • pt:部分和表

  • tsum:总和


查看完整回答
反对 回复 2021-08-28
  • 1 回答
  • 0 关注
  • 391 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信