$prospect = DB::table('prosys_prospect') ->join('prosys_sls','prosys_prospect.prs_id_sales','=','prosys_sls.nipsls') ->leftJoin(DB::raw("(SELECT A.prs_id_sales FROM `prosys_prospect` AS A LEFT JOIN prosys_visit AS C ON A.prs_id_prospect = C.v_id_prospect WHERE C.v_testdrive = '1' AND C.v_visit_number = '1' AND A.prs_kdcab = 'PK3A' AND DATE(prs_create_entry) BETWEEN '2023-01-01' AND '2023-01-02' GROUP BY A.prs_id_sales ) AS C"), function($join) { $join->on('prosys_prospect.prs_id_sales', '=', 'C.prs_id_sales'); }) ->select( array( 'prosys_prospect.prs_id_sales', DB::raw("COUNT(prosys_prospect.prs_id) AS pros"), DB::raw("SUM(IF((prosys_prospect.prs_spk_no != ''), 1, 0 )) AS SPK") ) ) ->where('prosys_sls.expired' = '0') ->where('prosys_prospect.prs_kdcab' = 'PK3A'); $prospect = $prospect->whereBetween(DB::raw('DATE(prs_create_entry)'), ['2023-01-01', '2023-01-02']); $prospect = $prospect->groupBy('prosys_prospect.prosys_sls')->get();