我正在尝试执行一个查询,并根据一个条件得到一个值的总和。
我需要所有的‘股票’当‘动作’==‘+
我得按问题分组。
qs = Trades.objects.all ().filter ( id = id )
.annotate (
d_shrs = Sum ( When (
action = '+', then = 'shares'
) )
).order_by ( 'issue' )我哪里出问题了?
发布于 2018-01-29 05:26:57
您需要用例(它允许您在查询中使用if- of类型的构造),使用一个When,F将获得字段的实际值。
from django.db.models import Case, When, F, Sum
qs = Trades.objects.filter(id=id).annotate(
d_shrs=Sum(
Case(
When (
action='+', then=F('shares')
)
)
)
).order_by('issue')https://stackoverflow.com/questions/48494074
复制相似问题