我需要比较和汇总两个不同日期的数据。
假设我有4个输入日期
startdate = "2020-11-01",
enddate = "2020-11-30",
compare_startdate = "2020-12-01",
compare_enddate = "2020-12-31",
目前,我的查询只能获取一个whereBetween日期数据,如下所示
当前代码
$raw_data = ChartOfAccount::with(array(
'journal' => function($query) use ($init)
{
$query->selectRaw('*,
sum(item_journals.debit) as total_debit,
sum(item_journals.credit) as total_credit,
sum(item_journals.debit) - sum(item_journals.credit) as net_movement');
$query->groupBy('chart_of_account_id');
$query->where('item_journals.deleted_at', null);
$query->whereBetween('date', array($init['startdate'], $init['enddate']));
}
))
->get();
来自startdate
和的当前结果enddate
"total_debit" => "0.00"
"total_credit" => "200.00"
"net_movement" => "-200.00"
来自compare_startdate
和的另一个结果示例compare_enddate
"total_debit" => "0.00"
"total_credit" => "50.00"
"net_movement" => "-50.00"
如何从另一个查询结果compare_startdate
来compare_enddate
以的总和结果startdate
和enddate
?
预期结果
"total_debit" => "0.00"
"total_credit" => "150.00"
"net_movement" => "-150.00"
我确实在查询中尝试过类似的操作,但结果不正确
$query->whereBetween('date', array($init['startdate'], $init['enddate']));
$query->whereBetween('date', array($init['compare_startdate'], $init['compare_enddate']));
嗨,朋友,您可以在下面的where子句中预先使用orWhereBetween,
DB::table('tbl')
->Where(function ($query) use ($startdate,$enddate,$compare_startdate,$compare_enddate) {
$query->whereBetween('date', [$startdate, $enddate]);
$query->orWhereBetween('date', [$compare_startdate, $compare_enddate] );
})->get();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句