SQL Server CE GROUP BY异常

时间:2012-08-24 21:30:32

标签: sql-server-ce

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

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

请告诉我我做错了什么

2 个答案:

答案 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 

我做了什么?

  • 使用正确的ANSI INNER JOIN语法并在那里指定JOIN条件,它属于
  • GROUP BY必须应用于SELECT未汇总的列列表中的所有列
  • HAVING应该只有一个简单的条件 - 不要在此定义JOIN条件或任何内容!

根据to the MSDN documentation on GROUP BY for SQL Server CEntext表达式中不支持imageGROUP BY类型的列 - nchar应该不是问题