使用2个表进行聚合减法

时间:2017-10-24 03:43:31

标签: laravel laravel-5.4

我的Laravel查询无法正常运行。但MySQL查询工作正常

Laravel查询:

$data = DB::table(DB::raw('select (sum(case when type="credit" then amount else -amount end)) - (select sum(amount) from total) from report'))

请参考sqlfiidle中的mysql查询:http://sqlfiddle.com/#!9/2d0343/9

1 个答案:

答案 0 :(得分:0)

不要尝试重写你的MySQL查询,而是让它简化并使其更有说服力。

假设$data是总体余额,而您的报告表模型名为Report,则以下内容应达到您的目标:

$data = Report::where('type', 'credit')->sum('amount') - Report::where('type', 'debit')->sum('amount');

这将为您提供所有积分的总和,减去所有借记的总和。