(Access&VB.NET)查询:Get MAX()

(Access&VB.NET)查询:Get MAX(),vb.net,ms-access,max,Vb.net,Ms Access,Max,我需要显示为每个客户保存的最后一个订单号 例如: 表:客户 表:订单 如果执行此查询: Select CUSTOMERS.ID_CUST, CUSTOMERS.CUSTOMER, MAX(ORDERS.ID_ORDER) FROM CUSTOMERS INNER JOIN ORDERS ON CUSTOMERS.ID_CUST=ORDERS.ID_CUST GROUP BY CUSTOMERS.ID_CUST, CUSTOMERS.CUSTOMER 很好。结果: 100 | JOHN | 2

我需要显示为每个客户保存的最后一个订单号

例如:

表:客户

表:订单

如果执行此查询:

Select CUSTOMERS.ID_CUST, CUSTOMERS.CUSTOMER, MAX(ORDERS.ID_ORDER)
FROM CUSTOMERS INNER JOIN ORDERS ON CUSTOMERS.ID_CUST=ORDERS.ID_CUST
GROUP BY CUSTOMERS.ID_CUST, CUSTOMERS.CUSTOMER
很好。结果:

100 | JOHN | 2
101 | MARY | 3
问题是我还需要显示注释和合计字段。那么如果我运行这个:

Select CUSTOMERS.ID_CUST, CUSTOMERS.CUSTOMER, MAX(ORDERS.ID_ORDER), ORDERS.TOTAL, ORDERS.NOTES
FROM CUSTOMERS INNER JOIN ORDERS ON CUSTOMERS.ID_CUST=ORDERS.ID_CUST
GROUP BY CUSTOMERS.ID_CUST, CUSTOMERS.CUSTOMER,ORDERS.TOTAL, ORDERS.NOTES
结果不是我需要的(错):

100 | JOHN | 1 | LOREM IPSUM | 100€
100 | JOHN | 2 | PENDING | 300€ | 100
101 | MARY | 3 | BLA BLA | 400€
因为如果我没有在Group By中包含notes和total这两个字段,查询将返回错误:未将指定的表达式作为聚合函数的一部分包含

更新1:


我正在从vb.net程序运行此查询

保存您的第一个查询qryCustomLastOrderId。然后创建一个新的查询这是air代码选择qryCustomLastOrderId.*,ORDERS。来自qryCustomLastOrderId内部的注释在qryCustomLastOrderId.MaxOfID\u Order=ORDERS.ID\u Order上加入订单

如果您不想保存单独的查询,这里有另一个air代码: 选择Q1.*,订单。注释来自 选择CUSTOMERS.ID\u CUST、CUSTOMERS.CUSTOMER、MAXORDERS.ID\u ORDER作为MaxOfID\u ORDER 从客户内部加入客户的订单。ID\u CUST=ORDERS.ID\u CUST
按客户分组。ID_CUST,CUSTOMERS.CUSTOMER Q1 INNER JOIN ORDERS ON Q1.MaxOfID_Order=ORDERS.ID_Order

这有一个向导。那么您希望在结果中添加什么注释呢?PaulFrancis:因为我的客户希望这样做FionNuala:使用该向导,我得到了第二个查询……但是我正在从VB.NET应用程序启动此查询,它仍然可以工作,第二个查询将运行第一个查询。
Select CUSTOMERS.ID_CUST, CUSTOMERS.CUSTOMER, MAX(ORDERS.ID_ORDER), ORDERS.TOTAL, ORDERS.NOTES
FROM CUSTOMERS INNER JOIN ORDERS ON CUSTOMERS.ID_CUST=ORDERS.ID_CUST
GROUP BY CUSTOMERS.ID_CUST, CUSTOMERS.CUSTOMER,ORDERS.TOTAL, ORDERS.NOTES
100 | JOHN | 1 | LOREM IPSUM | 100€
100 | JOHN | 2 | PENDING | 300€ | 100
101 | MARY | 3 | BLA BLA | 400€