php sql查询语句总计

时间:2017-02-26 15:47:17

标签: php mysql sql

我正试图从我的数据库中的库存表中获取总数。

我的数据如下:

Name     Quantity    Type
A        12          add
B        10          add
A        3           sub
B        4           sub

现在我想计算总数量,因为添加参考加法和子参考减法。输出必须如下:

Name     Quantity    
A        9         
B        6          

我使用了以下内容:

        $this->db->select('stock.Name,sum() quantity as tot');
        $this->db->from('stock');
        $this->db->group_by('stock.Name');
        $query = $this->db->get();
        return $query->result();

2 个答案:

答案 0 :(得分:4)

您可以使用CASE来确定是否需要添加或减少数量:

select name,
    sum(case 
            when type = 'add'
                then quantity
            when type = 'sub'
                then - quantity
            end) quantity
from your_table
group by name;

请注意,这不会遵循除了add和sub之外的任何操作,这应该是一个理想的情况。

答案 1 :(得分:4)

select name, sum( case when type = 'add' then quantity else -quantity end) as total 
from my_table 
group by name