我正试图从我的数据库中的库存表中获取总数。
我的数据如下:
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();
答案 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