1

我需要编写 django 原始查询函数来获取总和值,然后写入 csn 文件。我写我的查询

for time in Tracking_details.objects.raw('SELECT *,sum=SUM(work_time) FROM structure_tracking_details WHERE employee_id='+ employee_id + ' GROUP BY project_structure ') :      
        writer.writerow([ time.project_structure,time.sum ])

它说

没有这样的列:总和

如何正确编写查询?

4

1 回答 1

2

替换sum=SUM(work_time)SUM(work_time) AS sum

顺便说一句,employee_id='+ employee_id + '构建查询的方式非常糟糕。你不应该这样做。它使您的查询容易受到 SQL 注入的影响,因为 Django 不会检查您在raw()函数中传递的任何查询。您可以像这样将参数传递给原始查询 -

Tracking_details.objects.raw('SELECT *, SUM(work_time) AS sum FROM structure_tracking_details WHERE employee_id = %s GROUP BY project_structure', [employee_id])

更多细节

于 2013-05-21T07:46:29.257 回答