SELECT
    SUM(
        CASE
           WHEN cumulative = 1
           THEN percent
           ELSE 0
        END)
FROM phppos_items_taxes;

鉴于上述声明,这是否可以执行以下操作:
mysql> select * FROM phppos_items_taxes;
+---------+-----------+---------+------------+
| item_id | name      | percent | cumulative |
+---------+-----------+---------+------------+
|       1 | Tax 1     |    8.00 |          0 |
|       1 | Tax 2     |   10.00 |          1 |
|       3 | Sales Tax |    8.00 |          0 |
|       4 | Tax 1     |   20.00 |          0 |
|       4 | Tax 2     |   20.00 |          0 |
+---------+-----------+---------+------------+

这是否为每行累积=1的百分比求和?如果累积!=1,然后求和0。

最佳答案

是的,的确如此!
一个更简洁的查询(imho)将使用IF语句:

SELECT SUM(IF(cumulative = 1, `percent`, 0)) FROM phppos_items_taxes;

关于mysql - 带有case语句的Mysql SUM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6878090/

10-15 09:53