我試圖從統計表中獲得每位客戶最後一天的最後一條記錄。 我想選擇最後一天銷售量最大的顧客。從所有客戶中選擇Rails中的最後一條記錄
統計信息每小時生成一次,因此客戶有多個統計信息,但我只需要最後一個統計信息。
我嘗試了幾個命令,我只是收到錯誤。
Statistic.where("created_at < ?",1.day.ago).select(:customer_id).distinct.order(created_at: :desc)
或
Statistic.where("created_at < ?",1.day.ago).select(:customer_id).distinct.last
是與勇氣的最佳解決方案?或者我應該創建2個選擇? 我不知道應該放置'sold_items'的位置。
這也可能是一個解決方案,但我不確定。
Customer.all.each do |customer|
stats = customer.statistics.where("created_at < ?",Date.today).last
count = stats.sold_items if stats.sold_items > count
best = customer if count = stats.sold_items
end
型號: 客戶的has_many:統計數據 - 統計belongs_to的:客戶
可否請您添加模型聲明? 爲了使你的第一個查詢工作,你應該加入。所以第二。 – marmeladze
你的'Customer'和'Statistic'模型之間有'has_many'' belongs_to'關係嗎? – sa77
對。客戶has_many:統計和統計belongs_to:客戶 –