【Laravel】月毎に売上の集計を行う

前回までの状況はこちら

最新ソースはこちら

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()を使ったほうがいいかもしれません。

でも、これができれば完成したも同然。

簡単すぎるので、コードは省略。

あとは最後の微調整で完成ですね。

バナークリックで応援よろしくお願いします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください