I want to convert the sql query to laravel query which is working fine in sql
select
a.id,
a.assigned_user_name,
a.lead_stage_c,
a.meeting_start_date,
a.call_start_date
from
mgl_report_targets as a
left join
dcalendardate b
on b.datevalue = a.meeting_start_date
left join
dcalendardate c
on c.datevalue = a.call_start_date
where
(
a.lead_stage_c = 'Target-MQL'
)
and
(
b.datevalue between '2020-07-31' and '2020-09-01'
)
or
(
c.datevalue between '2020-07-31' and '2020-09-01'
)
and a.active_status = '1'
and a.lead_stage_c = 'Target-MQL'
In laravel I have tried as
$report_details=DB::table('mgl_report_targets')->where('active_status',1);
$report_details=$report_details->leftjoin('dcalendardate as a','a.datevalue','=',DB::raw("mgl_report_targets.meeting_start_date::date"))->leftjoin('dcalendardate as b','b.datevalue','=',DB::raw("mgl_report_targets.call_start_date::date"));
$report_details=$report_details->where(function ($query) {
return $query->whereBetween('a.datevalue',['2020-07-31','2020-09-01']);
})
->orWhere(function ($query) {
return $query->whereBetween('b.datevalue',['2020-07-31','2020-09-01']);
});
$report_details=$report_details->where('mgl_report_targets.lead_stage_c','=','Target-MQL')->select('mgl_report_targets.id','mgl_report_targets.assigned_user_name','mgl_report_targets.meeting_start_date','mgl_report_targets.call_start_date','mgl_report_targets.lead_stage_c')->get();
but between query not query as expected. What I did wrong.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire