sql - 如何只获取最新日期的查询结果?

标签 sql ms-access

我想进行一个查询,该查询将显示今天之前发生的所有订单。我已经通过这个查询实现了它

SELECT tblOrder.date, tblOrder.name
FROM tblOrder
WHERE (((tblOrder.date)<=Date()))
GROUP BY  tblOrder.date, tblOrder.name

输出将是:

-------------------
-  Date  -Name    -  
-------------------
-02.06.16-Company1-
-23.06.16-Company2-
-24.06.16-Company1-
-------------------

我的问题是如何进行查询,该查询仅显示 Company1 一次(按某种方式分组)和最后日期,这样我就不会两次看到同一家公司。

我想要的输出:

-------------------
-  Date  -Name    -  
-------------------
-23.06.16-Company2-
-24.06.16-Company1-
-------------------

我试图仅按名称进行分组,但我发现这是不可能的。

最佳答案

GROUP BY name 并询问每个组内的Max(date)

SELECT o.name, Max(o.date) AS latest_order_date
FROM tblOrder AS o
WHERE o.date <= Date()
GROUP BY o.name;

关于sql - 如何只获取最新日期的查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38078122/

相关文章:

ms-access - 当用户双击文档时触发按钮私有(private)子

sql - Access 数据库 LIMIT 关键字

mysql - 如何在Workbench中创建复合键?

sql - "#"LIKE 模式字符在 Access 365 中的 SQL 中不起作用? Jet SQL 引擎中的新错误?

sql - 打开/关闭 DB2 中所有表的外键检查

javascript - 如何在没有回发的情况下访问 SQL 数据库中的数据

c# - 在 Access 中针对(隐藏的)系统表运行 C# 查询?

sql - 在同一日期或最接近的日期(之前或之后)连接两个表

php - WordPress 子查询在 SELECT 上返回超过 1 行

SQL 组按自定义类别(数量)