我有一个列(字段),每个实体包含多个值(一对多)。
示例:记录可以在此列中引用多个值。
我想要做的只是获取此列中最高(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 )
答案 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