Можете ли вы суммировать положительные значения отдельно от отрицательных значений?
У меня есть таблица, которая выглядит следующим образом:
class Order(models.Model):
date = models.DateField()
amount = models.DecimalField()
Я ищу получить набор запросов, который суммирует положительные суммы отдельно от отрицательных сумм и групп по неделям:
Year
Week
Sum of positive amounts
Sum of negative amounts
Я могу получить все положительные суммы в неделю отдельно, выполнив:
Order.objects.filter(amount__gt=0).annotate(year_week=Trunc('date', 'week', output_field=DateField())).\
annotate(year=ExtractYear('year_week')).annotate(week=ExtractWeek('year_week')).\
values("year_week", "year", "week").annotate(value=Sum("amount")).order_by("-year_week")
Я могу сделать это снова для отрицательное значение, но тогда у меня есть два отдельных набора запросов. Могу ли я объединить их эффективно, не зацикливая вручную, или есть способ сделать оба в одном запросе?