我有两张table
Class Billing(models.Model):
id=models.AutoField(primary_key=True)
.....
#Some more fields
....
Class BillInfo(models.Model):
id=models.AutoField(primary_key=True)
billing=models.ForeignKey(Billing)
testId=models.ForeignKey(AllTests)
costOfTest=models.IntegerField(default=0)
concession=models.IntegerField(default=0)
在这里 BillInfo
是垂直表,即 Billing
有多个 BillInfo
. 这里我要计算 Sum(costOfTest - concession)
一个单身汉 Billing
.
我可以使用单个查询来实现这一点吗?
需要帮助,提前谢谢。
1条答案
按热度按时间k2arahey1#
你可以这样写:
这里每
Billing
此中的对象QuerySet
将有一个额外属性.the_sum
这是所有的总和costOfTest
s减去concession
所有相关的BillingInfo
物体。计算此值的sql查询将大致如下所示:
因此,当您“具体化”查询时,查询将获得所有查询的总和
Billing
单个调用中的对象。为了
Billing
没有任何关联的对象BillingInfo
,的the_sum
属性将为None
,我们可以通过使用Coalesce
[django doc]功能: