高效查询以获得帐户余额

时间:2016-08-17 08:03:35

标签: mysql sql

我有一个包含如下示例数据的表:http://sqlfiddle.com/#!9/124b62

获得现金账户开仓和期末余额的最佳方式(有效查询)是什么?

一种方法是找到总积分并从总借记中减去。

SELECT sum(amount) as credit_total  
FROM `cash_book` 
WHERE `type` = 'credit' 
AND `account_holder_id` =1 
AND `created_at` >= '2016-07-31 00:00:00';


SELECT sum(amount) as debit_total
FROM `cash_book` 
WHERE `type` = 'debit' 
AND `account_holder_id` =1 
AND `created_at` >= '2016-07-31 00:00:00';

有人可以建议更好的查询吗?

1 个答案:

答案 0 :(得分:2)

单次总计

SELECT sum(case when `type` = 'credit' then -amount else amount end) as total  
FROM `cash_book` 
WHERE  AND `account_holder_id` =1 and  `created_at` >= '2016-07-31 00:00:00';