JG
Size: a a a
JG
JG
KV
СЧ
PA
A.objects.annotate(
positive=Sum('items__amount', filter=Q(items__type='1')),
negative=Sum('items__amount', filter=~Q(items__type='1')),
sum=F('positive')-F('negative')
)
Д
PA
Model.objects.filter(created__date='2021-06-07')
или нужно последние 24 часа?СЧ
СЧ
PA
PA
Model.objects.filter(created__gte=datetime.datetime.now()-datetime.timedelta(1))
СЧ
PA
class SumSubquery(Subquery):Далее создаётся кверисет для субквери
def __init__(self, queryset, sum_field, output_field=None, **extra):
extra.update(sum_field=sum_field)
super().__init__(queryset, output_field, **extra)
template = '(SELECT SUM(%(sum_field)s) FROM (%(subquery)s) _sum)'
item_queryset = (
Item.objects.filter(a_pk=OuterRef('pk'))
.annotate(
_amount=Case(
When(type='1', then=0 - F('amount')),
default=F('amount')
)
)
.values('_amount')
)
A.objects.annotate(
sum=SumSubquery(
item_queryset,
sum_field='total_sum',
output_field=models.IntegerField()
)
)
PA
Д
Д
django.db.utils.ProgrammingError: column "total_sum" does not exist
)PA
_amount
)Д
PA