Django Group_By和SUM查询

亚历克斯·洛德·莫多

我想做一个总结的库存报告。为了使之成为可能,我需要这样的模型:

class Inventario(models.Model):
    producto = models.ForeignKey(Producto)
    cantidad = models.DecimalField(default=0,decimal_places=2, max_digits=10)
    ubicacion = models.ForeignKey(Ubicacion, null=True, blank=True)
    def __unicode__(self):
        return self.producto.item

在SQL-RAW中,我当然会SELECT producto.nombre as item, sum(cantidad) as cantidad,... FROM Inventario GROUP BY item使用正确的JOIN做类似的事情

我会得到类似的东西:

|Item------- | Cantidad|
|PROD1       | 20      |
|PROD2       | 10      |

代替

|Item------- | Cantidad|
|PROD1       | 5       |
|PROD1       | 5       |
|PROD1       | 10      |
|PROD2       | 9       |
|PROD2       | 1       |

我想用Django方式制作,实际上我有

productos = Inventario.objects.filter(cantidad__gt=0).aggregate(Sum('cantidad'))

这只会让我回来 cantidad_sum:30

更新我现在用此代码获得GROUP BY

query = Inventario.objects.all().query
query.group_by = ['inventario_inventario.producto_id']
productos = QuerySet(query=query, model=Inventario)

但现在我不知道如何使“求和”功能:/

苏汉·贾恩(Sohan Jain)

尝试使用annotate代替aggregateaggregate总结整个查询集,而annotate为每个组生成值。例如,

productos = Inventario.objects.filter(cantidad__gt=0).values('producto').annotate(sum_cantidad=Sum('cantidad'))

查看django文档,了解更多详细信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Django管理外部联接,group_by和计数

来自分类Dev

Django ORM通过GROUP BY和SUM退出联接

来自分类Dev

具有JOIN和GROUP BY SQL查询的Django COUNT

来自分类Dev

使用 COUNT 、 GROUP BY 、 INTERVAL 和 LIMIT 创建 Django pgSQL 查询

来自分类Dev

如何在 Django 中查询设置为 ORDER BY 和 GROUP BY?

来自分类Dev

Django queryset和GROUP BY

来自分类Dev

Django ORM 和 GROUP BY

来自分类Dev

Django group_by参数取决于order_by

来自分类Dev

多选表单和查询Django

来自分类Dev

Django查询限制和streamingHttpResponse

来自分类Dev

带有VIEW语句的Django SUM查询

来自分类Dev

Django的。如何在JOIN查询和GROUP BY中获取所有字段

来自分类Dev

SUM和GROUP BY使用子查询

来自分类Dev

MYSQL复杂GROUP BY和SUM查询失败

来自分类Dev

SUM和GROUP BY使用子查询

来自分类Dev

查询中的 SUM、GROUP BY 和 LEFT JOIN

来自分类Dev

Django查询

来自分类Dev

Django和django oscar

来自分类Dev

Django Raw查询:使用group BY子句进行Count查询

来自分类Dev

Django Raw查询:使用group BY子句进行Count查询

来自分类Dev

Django的加入查询权限和组?

来自分类Dev

django“ __contains”和“ __in”作为单个查询

来自分类Dev

处理URL查询(Django和JSON)

来自分类Dev

DJANGO-查询集和模型设计

来自分类Dev

Django的加入查询权限和组?

来自分类Dev

用于分组和计数的 Django 查询集

来自分类Dev

Django 查询集过滤和注释

来自分类Dev

结合使用GROUP_BY和查询构建器和mySQL> = 5.7

来自分类Dev

结合使用GROUP_BY和查询构建器和mySQL> = 5.7