在我的应用中,用户可以保存指定日期的销售报告。我现在要做的是查询数据库并仅选择最新的销售报告(所有那些在我的表中具有最大日期的报告)。
我知道如何按日期对所有报告进行排序并选择具有最高日期的报告 - 但我不知道如何检索具有最高日期的多个报告。
我怎样才能实现这一目标?我正在使用Postgres。
答案 0 :(得分:10)
这样的东西?
class ItemForm(FlaskForm):
id = StringField('id')
name = StringField('Name')
cancel = SubmitField('Cancel')
submit = SubmitField('Submit')
def validate(self):
rv = Form.validate(self)
if not rv:
return False
if self.cancel.data
return True
if self.id.data is None or self.name.data is None:
return False
return True
编辑:为了让下面的@ muistooshort评论可见,您可以使用以下表单将两个查询缩减为单个查询(使用子选择):
SalesReport.where(date: SalesReport.maximum('date'))
如果您的Web主机和数据库主机之间存在大量延迟,则可能会使执行时间缩短一半。它几乎总是首选的形式。
答案 1 :(得分:1)
您可以获取搜索匹配报告的最长日期:
max_date = Report.maximum('date')
reports = Report.where(date: max_date)