現在当月の日毎に合計金額を集計する処理をしたいのですが
うまくいきません(m_ m)
わかる方がいらっしゃれば教えていただきますようよろしくお願いいたします(m _m)
###エラー内容
bash
1 2ActiveRecord::StatementInvalid in ChartSampleController#index 3Mysql2::Error: Column 'created_at' in where clause is ambiguous: SELECT SUM(`orders`.`amount`) AS sum_amount, DAY(orders.created_at) AS day_orders_created_at FROM `orders` LEFT OUTER JOIN `users` ON `users`.`id` = `orders`.`user_id` LEFT OUTER JOIN `addresses` ON `addresses`.`id` = `orders`.`address_id` LEFT OUTER JOIN `cartitems` ON `cartitems`.`order_id` = `orders`.`id` LEFT OUTER JOIN `items` ON `items`.`id` = `cartitems`.`item_id` WHERE (created_at >= '2019-02-01 00:00:00.000000') GROUP BY DAY(orders.created_at)
###期待する動作
- ordersテーブルのレコードのamountカラム(合計金額)を日毎に集計したい
###動作環境
Ruby:2.4.5
Ruby on Rails: 4.2.11
MySQL: 5.7.18
###参考サイト
【Rails】ActiveRecordで、月ごと年ごとの合計 - Qiita
###試したこと
.sum(:amount)
の部分を.sum(:orders.amount)
としてみましたがダメでした
###補足情報
下記のorders
は後で使いまわせるようにできるだけそのままでお願いしたいです
(includesの書き方が違う場合はご指摘お願いいたします)
###該当のソースコード
ruby
1#app/controllers/chart_sample_controller.rb 2 def index 3 t = Time.current 4 orders= Order.includes([:user, :address, cartitems: :item]).where('created_at >= ?', t.beginning_of_month) 5 @sales_per_day =orders.group("DAY(orders.created_at)").sum(:amount) 6 end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。