Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何计算表中两行的总和?_Php_Mysql - Fatal编程技术网

Php 如何计算表中两行的总和?

Php 如何计算表中两行的总和?,php,mysql,Php,Mysql,该表的值如下: group_name group_id parent_group_id amount One 69 10 1000 Two 70 11 500 Three 71 69 700 这里,如果组id=69与我尝试使用的父组i

该表的值如下:

   group_name    group_id    parent_group_id     amount

     One           69             10              1000
     Two           70             11              500
    Three          71             69              700
这里,如果
组id=69
与我尝试使用的
父组id=69
匹配,我需要对amount列中的值求和

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\u id
parent\u group\u id
建立了一种关系,如果
父组id
组id
中的任何一个匹配,那么这两个都属于一个组,因此我需要将这两个值相加。

根据您的意愿,将
组id
父组id
包括在内对我来说没有意义。你也没有解释“71”发生了什么

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

尝试以下解决方案:

SELECT t1.group_name, t1.group_id, t1.parent_group_id, 
      (t1.amount + IFNULL(t2.amount,0)) Amount
FROM Table1 t1
LEFT JOIN Table1 t2 
ON t1.group_id = t2.parent_group_id 
OR t2.group_id = t1.parent_group_id
WHERE t1.group_name < t2.group_name OR t2.group_name IS NULL
GROUP BY t1.group_name, t1.group_id, t1.parent_group_id
试试这个

SELECT 
group_name,group_id,parent_group_id,
(CASE WHEN group_id = 69 THEN 
(amount+(SELECT amount FROM table1 WHERE parent_group_id = 69)) 
ELSE amount END) as new_amount 
FROM Table1 WHERE parent_group_id !=69;

是否执行下面的查询或此链接

选择t.group\u name、t.group\u id、t.parent\u group\u id、,
(t.group\u id=t1.parent\u group\u id然后t1.amount+t.amount else t.amount end时的情况)
从t
在t.group\u id=t1.parent\u group\u id上左连接t作为t1
其中t.group_id 71

我需要根据
组\u id
家长\u费用\u组\u id
的匹配来计算一个值的总和。。更新了我的问题little..您想要仅对组或所有组的组id的结果吗_id@AnkitAgrawal,如果两个ID都匹配,假设group_id的值为69,parent_group_id的值为69,那么它应该被连接起来,金额应该得到总和。但是当它与group
one
一起添加时,我不需要group
third
的group_id=71。但是值
71
将不会是静态的,因为场景是这样的,如果存在匹配,那么它会是静态的已添加,且相应的组\u id与父\u id匹配。将从行中删除。
group_name  group_id    parent_group_id   Amount
One         69           10               1700
Two         70           11               500
SELECT 
group_name,group_id,parent_group_id,
(CASE WHEN group_id = 69 THEN 
(amount+(SELECT amount FROM table1 WHERE parent_group_id = 69)) 
ELSE amount END) as new_amount 
FROM Table1 WHERE parent_group_id !=69;
 select t.group_name,t.group_id,t.parent_group_id,
           (case when t.group_id = t1.parent_group_id then t1.amount + t.amount else t.amount end)
    from t 
    left join t as t1 on t.group_id = t1.parent_group_id
where t.group_id <>71