获取昨天和今天odoo的最大值

时间:2018-03-31 13:49:46

标签: odoo odoo-10

在数据库中有很多日期,但我想获取特定城市的昨天和今天的最大值。 我尝试下面的代码,但我为每个城市提供相同的价值:

我想要的是,如果有多个城市,并且他们有自己的价值,那么如何为每个特定城市获得最大价值。

假设,昨天创建了前两个值,今天创建了休息。

设A,B,C,D为城市,A的值为45,62,98,62,37& B的值为85,26,33,44,55& C的值为74,56,20,35,96& D的值为45,52,69,85,77,它们的创建日期不同,有些A值是昨天创建的,有些A值是今天创建的。类似地,对于B,C,D。

现在,从我想要的数据: 昨天创建的A,B,C,D 最大值 。(即A = 62,B = 85,C = 74,D = 52)&

今天创建的A,B,C,D 的最大值 。(即A = 98,B = 55,C = 96,D = 85)。 以下是我尝试过的代码:

class VentaToday(ListView):
template_name = 'venta/venta_today.html'
    def get_queryset(self):
        return Venta.objects.filter(fecha=datetime.now(pytz.timezone('America/Lima'))).order_by('-id')

1 个答案:

答案 0 :(得分:0)

要做你想做的事,你需要使用group by。 在您的选择查询中,您需要按城市和日期进行分组 那么在你的where子句中你需要提供只保留的条件 昨天和今天的日期。

 SELECT 
     city,
     result_date,
     max(value)
 FROM 
     your_table
 WHERE 
     result_date > current_date - 1
 group by city, result_date 
 order by city   

此查询的结果将是这样的:

   city_001  today       15
   city_001  yesterday   15
   city_002  today       20
   city_002  yesterday   22
   city_003  today       18
   city_003  yesterday   20

没有什么是你的日期类型不告诉我是datetime因为这不起作用 当你阅读这条消息时,你需要额外的工作告诉我