我有以下代码来查询我的数据库
SELECT U.Name, U.Date, Max(I.Amount)
FROM Users AS U,Installments AS I
GROUP BY I.ID
HAVING (Max(I.Sr) = 40 AND U.ID = I.ID)
它产生异常说
在聚合和分组表达式中,SELECT子句可以 仅包含聚合和分组表达式[SELECT子句 = U.Name]
我也试过GROUP BY U.ID, I.ID
,但存在同样的问题
请告诉我我做错了什么
答案 0 :(得分:0)
我相信您需要按U.Name和U.Date进行分组才能使聚合正常工作。
答案 1 :(得分:0)
请尝试此查询:
SELECT
U.Name, U.Date, Max(I.Amount)
FROM
Users AS U
INNER JOIN
Installments AS I ON U.ID = I.ID
GROUP BY
U.Name, U.Date
HAVING
MAX(I.Sr) = 40
我做了什么?
INNER JOIN
语法并在那里指定JOIN条件,它属于GROUP BY
必须应用于SELECT
未汇总的列列表中的所有列HAVING
应该只有一个简单的条件 - 不要在此定义JOIN
条件或任何内容!根据to the MSDN documentation on GROUP BY for SQL Server CE,ntext
表达式中不支持image
和GROUP BY
类型的列 - nchar
应该不是问题