【发布时间】:2012-01-19 18:02:04
【问题描述】:
我有一个列(字段),其中包含每个实体的多个值(一对多)。
示例:一条记录可以引用该列中的多个值。
我想要做的是只获取此列中最高(MAX)值等于零的记录。
我做的第一件事是将列中的值转换为整数,这样我就可以得到最大值。
这是我的代码:
如何获得 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 )
【问题讨论】:
-
我很困惑,为什么现有的select Max不适合你?
-
因为我不确定查询的结果集是否准确。
-
您说的是 00000、11111、22222、33333,但 00000 是此列表的 MIN。你想要 MAX 还是 MIN?
-
附加信息:基本上我正在尝试获取代码 = 00000 的记录。问题是,有些记录可以同时包含 00000、11111 等。因此,简单来说,我只想记录该代码 = 00000,仅此而已。
-
如果是文本,为什么不
Select * From Customers Where Rec_Code=0或"0000"?
标签: sql ms-access-2007