1

我有以下代码来查询我的数据库

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但同样的问题存在

请告诉我我做错了什么

4

2 回答 2

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 

我做了什么?

  • 使用正确的 ANSIINNER JOIN语法并在那里指定它所属的 JOIN 条件
  • GROUP BY必须应用于SELECT未聚合的列列表中的所有列
  • HAVING应该只有一个简单的条件——不要在这里定义JOIN条件或任何东西!

根据GROUP BY for SQL Server CE 上的 MSDN 文档,只有类型的列ntext并且在表达式image中不受支持-应该不是问题GROUP BYnchar

于 2012-08-25T06:57:18.293 回答
0

我相信您需要按 U.Name 和 U.Date 进行分组才能使聚合正常工作。

于 2012-08-24T21:34:39.823 回答