-2

这段代码

 SELECT * FROM MBR_MST WHERE MBR_JOIN_DT=MIN(MBR_JOIN_DT)

显示以下错误:

消息 147,级别 15,状态 1,第 1 行聚合可能不会出现在 WHERE 子句中,除非它位于 HAVING 子句或选择列表中包含的子查询中,并且正在聚合的列是外部引用。

4

2 回答 2

6

看起来您正在尝试获取具有最短加入日期的记录。这里有两种方法:

SELECT *
FROM MBR_MST
WHERE MBR_JOIN_DT = (select MIN(MBR_JOIN_DT) from MBR_MST);

SELECT TOP 1 *
FROM MBR_MST
ORDER BY MBR_JOIN_DT;
于 2013-09-01T16:47:43.870 回答
0

试试这个——

SELECT m.*
FROM dbo.MBR_MST m
CROSS JOIN (
    SELECT min_value = MIN(MBR_JOIN_DT) 
    FROM dbo.MBR_MST 
) t
WHERE MBR_JOIN_DT = min_value

SELECT *
FROM dbo.MBR_MST m
WHERE MBR_JOIN_DT = (SELECT MIN(MBR_JOIN_DT) FROM dbo.MBR_MST) 
于 2013-09-02T05:30:27.787 回答