Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Django中编写sql COALESCE_Django_Django Queryset - Fatal编程技术网

如何在Django中编写sql COALESCE

如何在Django中编写sql COALESCE,django,django-queryset,Django,Django Queryset,我是Django的新手。如何将联合sql查询集写入django orm query = 'SELECT COALESCE(max(CAST(order_no as UNSIGNED)), 0) as o,id from nanossc_Sales_master' models.py class Sales_master(models.Model): slno = models.IntegerField(blank=True, null=True) order_no = mode

我是Django的新手。如何将联合sql查询集写入django orm

query = 'SELECT COALESCE(max(CAST(order_no as UNSIGNED)), 0) as o,id from nanossc_Sales_master'
models.py

class Sales_master(models.Model):
    slno = models.IntegerField(blank=True, null=True)
    order_no = models.CharField(max_length=50, blank=True, null=True)
    type = models.CharField(max_length=50, blank=True, null=True)
    customer_id = models.CharField(max_length=50, blank=True, null=True)
    customer_name = models.CharField(max_length=50, blank=True, null=True)
    brand_name = models.CharField(max_length=50, blank=True, null=True)
    name = models.CharField(max_length=50, blank=True, null=True)
您可以在此处使用和:

从django.db.models导入最大值,正输入字段,值
从django.db.models.functions导入强制转换、合并
Sales_master.objects.aggregate(
o=合并(最大值(转换('order_no',output_field=PositiveIntergerField()),值(0))
)
这将生成一个字典,其中键
'o'
映射到此聚合的结果。

您可以在此处使用and:

从django.db.models导入最大值,正输入字段,值
从django.db.models.functions导入强制转换、合并
Sales_master.objects.aggregate(
o=合并(最大值(转换('order_no',output_field=PositiveIntergerField()),值(0))
)

这将生成一个字典,其中键
'o'
映射到此聚合的结果。

您可以共享您的模型吗?上面的查询看起来不是有效的,因为
MAX(..)
通常是在一组对象上定义的,而不是单个标量。@WillemVanOnsem实际上我正在将PHP查询转换为django。这是php queryset
$result=mysql\u查询(“选择COALESCE(max(CAST(订单号为UNSIGNED)),0)作为sales\u master的o”)
@Kumor:than它是一个聚合,但是你不能使用
id
那么。@WillemVanOnsem没有id它的显示错误,这就是为什么我在那里使用id,但是在你的PHP程序中,它没有。你能分享你的模型吗?上面的查询看起来不是有效的,因为
MAX(..)
通常是在一组对象上定义的,而不是单个标量。@WillemVanOnsem实际上我正在将PHP查询转换为django。这是php queryset
$result=mysql\u查询(“选择COALESCE(max(CAST(订单号为UNSIGNED)),0)作为sales\u master的o”)
@Kumor:than它是一个聚合,但是您不能使用
id
then.@WillemVanOnsem如果没有id则显示错误,这就是为什么我在那里使用id,但在您的PHP程序中,它没有?
from django.db.models import Max, PositiveIntergerField, Value
from django.db.models.functions import Cast, Coalesce

Sales_master.objects.aggregate(
    o=Coalesce(Max(Cast('order_no', output_field=PositiveIntergerField())), Value(0))
)