如何使用MS Access中的Having子句获取MAX值

时间:2012-01-19 18:02:05

标签: sql ms-access-2007

我有一个列(字段),每个实体包含多个值(一对多)。

示例:记录可以在此列中引用多个值。

我想要做的只是获取此列中最高(MAX)值等于零的记录。

我做的第一件事就是将列中的值转换为Integer,这样我就可以获得最大值。

这是我的代码:

如何获取Max代码?如果记录有多个代码。我只希望记录最大或最高代码为00000。

我收到了Having子句的错误,因为我不能在Where子句中使用Aggregate。

SELECT CUSTOMER.USER_ID, MAX(CInt(CUSTOMER.REC_CODE)) AS ACTIVE_REC_CODE, 
CUSTOMER.CUS_TYPE


FROM CUSTOMER


WHERE ((CUSTOMER.REC_CODE) IS NOT NULL )


GROUP BY

CUSTOMER.USER_ID, CUSTOMER.REC_CODE, CUSTOMER.CUS_TYPE


HAVING  MAX(CInt([CUSTOMER.REC_CODE])= 00000 )

1 个答案:

答案 0 :(得分:3)

您已离场,但您需要从CUSTOMER.REC_CODE中移除WHERE,因为您需要该列的最大值。这应该有效:

SELECT CUSTOMER.USER_ID, MAX(CInt(CUSTOMER.REC_CODE)) AS ACTIVE_REC_CODE, CUSTOMER.CUS_TYPE
FROM CUSTOMER
WHERE CUSTOMER.REC_CODE IS NOT NULL 
GROUP BY CUSTOMER.USER_ID, CUSTOMER.CUS_TYPE
HAVING  MAX(CInt([CUSTOMER.REC_CODE])) = 0