#ruby-on-rails #postgresql #group-by
#ruby-on-rails #postgresql #группировка по
Вопрос:
Я хочу получить еженедельный / ежемесячный / годовой отчет, и в этом отчете мне нужно получить общее количество полей due_amount на ежедневной основе за эту неделю / месяц / год
Мне нужно что-то вроде
Sunday => 1000 (due_amount 500 500)
Понедельник => 1200
Вторник => 500
до субботы (конец недели)
Если ежемесячно, то с 1-го по 31-е, а если ежегодно, то с января по февраль по декабрь.
Что я делаю, так это
Invoice.group(amp;:week).where('due_date BETWEEN ? AND ?', date_range[:current_start_date].to_date, date_range[:current_end_date].to_date).sum(:due_amount)
но это не работает
Я также могу выполнить date_trunc(‘неделя’,), но я не знаю, как это сделать.
Пожалуйста, помогите мне.
Ответ №1:
Простое решение — добавьте gem groupdate, и вы сможете сделать что-то вроде
Invoice.group_by_day(:due_date, range: 2.weeks.ago.midnight..Time.now).map(amp;:due_amount).sum
Комментарии:
1. Спасибо, но я знаю, что я не хочу добавлять gem для запросов
2. ну, чем это ваше мнение 🙂