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

集計が適切に機能するには、U.Name と U.Date でグループ化する必要があると思います。

于 2012-08-24T21:34:39.823 に答える
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 BYSELECT集計されていない列のリスト内のすべての列に適用する必要があります
  • HAVINGJOIN単純な条件のみを指定する必要があります。ここでは条件などを定義しないでください。

SQL Server CE の GROUP BY に関する MSDN のドキュメントによると、タイプntextandの列のみが式でimageサポートされていません。問題にはなりません。GROUP BYnchar

于 2012-08-25T06:57:18.293 に答える