【发布时间】:2012-07-05 07:12:37
【问题描述】:
我正在尝试按类别计算总销售额。
我知道有一种方法可以用 python 做到这一点,但我宁愿用查询或聚合来做到这一点。
我的模型:
class Item(models.Model):
category= models.ForeignKey(Category)
name = models.CharField(max_length=40)
class Category(models.Model):
name = models.CharField(max_length=40)
class Store(models.Model):
name=models.CharField(max_length=40)
class Sale(models.Model):
item=models.ForeignKey(Item)
store=models.ForeignKey(Store)
quantity=models.IntegerField()
class Store_Item(models.Model):
item=models.ForeignKey(Item)
store=models.ForeignKey(Store)
price= models.DecimalField(max_digits=10, decimal_places=2)
结果应该是这样的:
sales total
books 100 859.10
audio 200 1894.20
total 300 2753.3
现在我正在获取每个类别的总数,如下所示:
p=Sale.objects.all().values('item__category__name').order_by('item__category__name').annotate(total=Sum('quantity'))
我明白了:
books 100
audio 200
但我被价格部分困住了。
任何帮助将不胜感激。 提前致谢!
【问题讨论】:
-
我正在尝试按如下类别获取所有销售额:test=Sale.objects.all().order_by('item__category').annotate(total=Sum('quantity'))。 values('item__category__name', 'total') 我已经在这里搜索过了,我还在搜索中
-
您应该更新您的问题,显示您一直在尝试的内容、当前的输出、错误等。您需要使这更容易,以便其余的可以帮助您
-
谢谢 César,我已经得到了每个类别的总和。我被困在从每家商店的商品价格中进行选择。
标签: django aggregation