该表的值如下:

   group_name    group_id    parent_group_id     amount

     One           69             10              1000
     Two           70             11              500
    Three          71             69              700


如果group id = 69与我尝试过的parent_group_id = 69匹配,那么我需要在数量列中求和

SUM(CASE WHEN fee_groups.groups_id = fee_groups.parent_fee_groups_id
            THEN amount
         ELSE 0
     END) AS total


但是上面的线对我无能为力。如果我错了,请帮助我获得以下结果,

   group_name    group_id    parent_group_id     amount

     One           69             10              1700
     Two           70             11              500


在这里,group_idparent_group_id建立关系,如果任何parent_group_idgroup_id匹配,则两者都属于单个组,因此我需要将这两个值求和。

最佳答案

对于您想做的事情,包含group_idparent_group_id对我来说没有意义。您也没有解释“ 71”会发生什么。

select min(group_name) as group_name,
       sum(amount)
from t
group by (case when 69 not in (group_id, parent_group_id) then group_name end);


这将合并共享“ 69”的组,并使其他组分开。

关于php - 如何使表中的两行相加?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49920360/

10-10 10:35