我有sql查询,我需要在django中使用orm技术。
SELECT a.id, a.amount, SUM(b.amount)
FROM cashflow_statement a, cashflow_statement b
WHERE b.id <= a.id GROUP BY a.id
ORDER BY a.id
编辑:django模型
class Statement(models.Model):
amount = models.DecimalField(max_digits=10, decimal_places=2)
date = models.DateField()
def __str__(self):
return self.title
输入数据
id, amount, date
1. 10 25/06/2020
2. -10 25/06/2020
3. 40 25/06/2020
4. 10 25/06/2020
5. -30 25/06/2020
6. 10 25/06/2020
Need Output:
id, amount, sum
1. 10. 10
2. -10. 0
3. 40. 40
4. 10. 50
5. -30. 20
6. 10. 30
2条答案
按热度按时间x6yk4ghg1#
也许我在代码中有错误,但我认为您正在寻找.filter()部分。如果需要同时使用多个过滤器,可以这样想:
icomxhvb2#
目前django不支持子查询中的聚合,但通过一种解决方法,我们可以“欺骗”系统生成正确的查询: