Я пытаюсь сгенерировать отчет из Postgres, используя Django ORM, который будет похож на следующий SQL запрос:
SELECT
region,
manager,
report_group,
SUM(
CASE WHEN invoice_date BETWEEN '2020-01-01' AND '2020-01-31'
THEN item_amount
ELSE 0
END
) as p1_spends
FROM
A_TABLE_WITH_SOME_JOINS
GROUP BY
region, manager, report_group
Я написал этот фрагмент
queryset = queryset.values("region", "manager", "report_group").order_by().annotate(
p1_spends=Case(
When(invoice__invoice_date__range=('2020-01-01', '2020-01-31'), then=Sum('item_amount')),
default=Value(0),
output_field=FloatField()
)
)
)
Я надеялся получить набор результатов, в котором строки сгруппированы по региону, менеджеру и группе отчетов, а функция агрегирования применена к полю item_amount, а набор результатов сгруппирован по региону, менеджеру, группе отчетов и дате выставления счета.
Как получить ожидаемый результат?