【发布时间】:2017-02-17 23:56:44
【问题描述】:
我在 Postgres 中有下一个查询:
SELECT a.id, a.name, a.code,
(SELECT coalesce((SELECT MAX(value) FROM financials WHERE client_key=a.id AND year=2016), 0) AS ca_vlr_n)
FROM clients a
我想把它翻译成 Django,但我不知道如何处理那个 Coalesce。我已经这样做了:
queryset = Client.objects.values('name', 'code').annotate(ca_vlr_n=Coalesce(Max('financial__value'), V(0)))
但我不知道如何把一年的条件。
我的模型是:
class Client(models.Model):
name = models.CharField(help_text="Client's Name", max_length=128, unique=True)
code = models.CharField(help_text="Client's CUI", max_length=50)
class Financial(models.Model):
year = models.PositiveSmallIntegerField()
client = models.ForeignKey(Client, on_delete=models.CASCADE)
value = models.BigIntegerField()
【问题讨论】:
标签: sql django postgresql django-queryset