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
Mysql求和条件_Mysql_Sql - Fatal编程技术网

Mysql求和条件

Mysql求和条件,mysql,sql,Mysql,Sql,我试图从下表中获取总成本,如果设置了Include\u Extra,则使用相应的Extra\u Seat\u cost列中的值。我是mysql新手,所以非常感谢您的帮助 +-----------+-----------------+---------------+ | ID | Cost | Extra_Seat_Cost | Include_Extra | +-----------+-----------------+---------------+ | 3 | 20 | 15

我试图从下表中获取总成本,如果设置了
Include\u Extra
,则使用相应的
Extra\u Seat\u cost
列中的值。我是mysql新手,所以非常感谢您的帮助

+-----------+-----------------+---------------+
| ID | Cost | Extra_Seat_Cost | Include_Extra |
+-----------+-----------------+---------------+
|  3 |   20 |      15         |       1       |
|  4 |   10 |      5          |       0       |
+----+------+-----------------+---------------+

结果应该是total=$45

当出现以下情况时,您可以将SUM与一起使用:

SELECT SUM(Cost + CASE WHEN Include_Extra = 1   --if Include_Extra is bool delete = 1
                       THEN COALESCE(Extra_Seat_Cost,0) 
                       ELSE 0 END) AS total
FROM table_name;

我添加了
COALESCE
,以防
额外座位成本
可以为空。数字+
NULL
产生
NULL

如果您有分组列,请使用:

SELECT group_column, SUM(Cost + CASE WHEN Include_Extra = 1 
                                     THEN COALESCE(Extra_Seat_Cost,0) 
                                     ELSE 0 END) AS total
FROM table_name;
GROUP BY group_column;