Получить сумму due_amount для каждой даты за эту неделю в rails

#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. ну, чем это ваше мнение 🙂