我有一个包含如下示例数据的表: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';
有人可以建议更好的查询吗?
答案 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';