reporting $device_data = DB::table($yearTab . 'meters as m') ->join($yearTab . 'floorplan_machines as fpm', 'fpm.proposed_serial_number', '=', 'm.serial_number') ->joinSub($lastMeterRead, 'lastMeterRead', function($join){ $join->on('m.serial_number', '=', 'lastMeterRead.serial_number'); $join->on('m.created_date', '=', 'lastMeterRead.mtr_dt');}) ->join($yearTab . 'floorplans as fp', 'fp.fp_id', '=', 'fpm.floorplans_id') ->join($yearTab . 'buildings as bldgs', 'bldgs.bldg_id', '=', 'fp.buildings_id') ->join($yearTab . 'model_details as md', 'md.model_id', '=', 'fpm.proposed_model_id') ->join($yearTab . 'machine_statuses as ms', function ($join) use($serNumDate){ $join->on('ms.serial_number', '=', 'fpm.proposed_serial_number') ->joinSub($serNumDate, 'serNumDate', function($join){ $join->on('ms.serial_number', '=', 'serNumDate.serial_number'); $join->on('ms.created_date', '=', 'serNumDate.dt') ->whereNotNull('ms.serial_number');}); }) ->join('organizations as orgs', 'orgs.org_id', '=', 'bldgs.organizations_id') ->select('orgs.org_name', 'fpm.*', 'bldgs.bldg_name', 'md.mach_make', 'md.model', 'm.created_date', 'mtr_dt', 'ms.toner', 'ms.service_needed', 'm.serial_number') ->where('bldgs.organizations_id', '=', $org_id) ->where('fpm.proposed_model_id', '!=', 790) ->whereNotNull('fpm.fyer_groups_id') ->where('m.created_date', '>=', $notReportingDateFormat) non-reporting $device_data = DB::table($yearTab . 'floorplan_machines as fpm') ->join($yearTab . 'model_details as mach', 'mach.model_id', '=', 'fpm.proposed_model_id') ->join($yearTab . 'meters as m', 'fpm.proposed_serial_number', '=', 'm.serial_number') ->joinSub($lastMeterRead, 'lastMeterRead', function($join){ $join->on('m.serial_number', '=', 'lastMeterRead.serial_number'); $join->on('m.created_date', '=', 'lastMeterRead.mtr_dt');}) ->join($yearTab . 'machine_statuses as ms', 'ms.serial_number', '=', 'fpm.proposed_serial_number') ->joinSub($serNumDate, 'serNumDate', function($join){ $join->on('ms.serial_number', '=', 'serNumDate.serial_number'); $join->on('ms.created_date', '=', 'serNumDate.dt');}) ->join($yearTab . 'floorplans as fp', 'fp.fp_id', '=', 'fpm.floorplans_id') ->join($yearTab . 'buildings as bldgs', 'bldgs.bldg_id', '=', 'fp.buildings_id') ->join('organizations as orgs', 'orgs.org_id', '=', 'bldgs.organizations_id') ->where('bldgs.organizations_id', '=', $org_id) ->where('fpm.proposed_model_id', '!=', 790) ->whereNotNull('fpm.fyer_groups_id') ->where('m.created_date', '>=', $startingDateFormat) ->where('m.created_date', '<', $notReportingDateFormat) ->where('lastMeterRead.mtr_dt', '>=', $startingDateFormat) ->where('lastMeterRead.mtr_dt', '<', $notReportingDateFormat)