= 0; $i--) { $months[date('Y-m', strtotime("-$i month"))] = ['warga' => 0, 'bantuan' => 0]; } foreach ($pdo->query("SELECT DATE_FORMAT(created_at,'%Y-%m') ym, COUNT(*) c FROM warga_miskin GROUP BY ym") as $r) { if (isset($months[$r['ym']])) $months[$r['ym']]['warga'] = (int)$r['c']; } foreach ($pdo->query("SELECT DATE_FORMAT(created_at,'%Y-%m') ym, COUNT(*) c FROM bantuan_sosial GROUP BY ym") as $r) { if (isset($months[$r['ym']])) $months[$r['ym']]['bantuan'] = (int)$r['c']; } // warga sebelum jendela 12 bulan (untuk basis kumulatif) $firstMonth = array_key_first($months); $base = (int)$pdo->query("SELECT COUNT(*) FROM warga_miskin WHERE DATE_FORMAT(created_at,'%Y-%m') < '$firstMonth'")->fetchColumn(); $labels = []; $wargaBaru = []; $kumulatif = []; $bantuanBaru = []; $run = $base; foreach ($months as $ym => $v) { $labels[] = $ym; $wargaBaru[] = $v['warga']; $run += $v['warga']; $kumulatif[] = $run; $bantuanBaru[] = $v['bantuan']; } sendSuccess([ 'labels' => $labels, 'warga_baru' => $wargaBaru, 'kumulatif' => $kumulatif, 'bantuan_baru' => $bantuanBaru, ], 'Tren Waktu');