我正在编写一个mysql查询,根据id查找两个字段的总和。我尝试在select查询中使用IF条件编写查询。这是我的疑问:
`SELECT (IF(`tax_rate_id`=2,SUM(`net_unit_price`*`quantity`),0)) AS sale5
(IF(`tax_rate_id`=3,SUM(`net_unit_price`*`quantity`),0)) AS sale145
FROM sma_sale_items
where sale_id=4221`
我不知道我的查询是否正确..如果不可能有任何其他方法来实现这一目标吗?此外,我想在codeigniter中执行相同的查询。任何人都可以帮助我..
答案 0 :(得分:4)
您可以将条件和用于与
相同的内容select
sum( case when tax_rate_id = 2 then net_unit_price*quantity else 0 end) as sale5,
sum( case when tax_rate_id = 3 then net_unit_price*quantity else 0 end) as sale145
from sma_sale_items
where sale_id=4221
答案 1 :(得分:1)
MySQL查询
SELECT IF(`tax_rate_id`=2,
SUM(`net_unit_price`*`quantity`),
0) AS sale5,
IF(`tax_rate_id`=3,
SUM(`net_unit_price`*`quantity`),
0) AS sale145
FROM sma_sale_items
WHERE sale_id=4221
您可以在codeigniter中使用这样的内容
$this->db->select('IF(`tax_rate_id`=2,SUM(`net_unit_price`*`quantity`),0) AS sale5', FALSE);
$this->db->select('IF(`tax_rate_id`=3,SUM(`net_unit_price`*`quantity`),0) AS sale145', FALSE);
$this->db->from('sma_sale_items');
$this->db->where(array('sale_id'=>4221));
$result = $this->db->get();
echo $this->db->last_query();