前回までの状況はこちら
最新ソースはこちら
https://github.com/takishita2nd/hotel-mng
月毎に集計を行います。
このときのデータベースの操作が大変で・・・
/** * 月毎に集計する */ public function countByMonthly() { return ReserveDayList::select(DB::raw('DATE_FORMAT(day, "%Y-%m") as yearmonth'), DB::raw('count(*) as count'), DB::raw('count(*) * 2000 as total')) ->groupby('yearmonth') ->get(); }
リポジトリはこれでなんとかできました。
select文でdayカラムをYYYY-mmのフォーマットで出力(このカラム名をyearmonthとする)。
yearmonthごとにgroupByでグループ分けし、count(*)で集計を行います。
もっとうまい方法があるかもしれませんが、迷ったらDB::raw()を使ったほうがいいかもしれません。
でも、これができれば完成したも同然。
簡単すぎるので、コードは省略。
あとは最後の微調整で完成ですね。
バナークリックで応援よろしくお願いします。