首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django .annotate与时间

Django .annotate与时间
EN

Stack Overflow用户
提问于 2018-01-29 03:44:10
回答 1查看 105关注 0票数 0

我正在尝试执行一个查询,并根据一个条件得到一个值的总和。

我需要所有的‘股票’‘动作’==‘+

我得按问题分组。

代码语言:javascript
复制
 qs = Trades.objects.all ().filter ( id = id ) 
    .annotate (
        d_shrs = Sum ( When (
           action = '+', then = 'shares'
        ) )
  ).order_by ( 'issue' )

我哪里出问题了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-29 05:26:57

您需要用例(它允许您在查询中使用if- of类型的构造),使用一个When,F将获得字段的实际值。

代码语言:javascript
复制
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')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48494074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档