0

MS Access 2010 データベースで次のクエリを実行しようとしています。

SELECT a.[Level], max(a.dte) AS nextDate, IIf(a.[Type1Date]<a.[Type2Date],"t1","t2") AS Type
FROM (
    select [Level], Type1Date as dte, Type1Date, Type2Date 
    FROM CommunicationTable WHERE ClientNumber=1
    UNION
    select [Level], Type2Date as dte, Type1Date, Type2Date 
    FROM CommunicationTable WHERE ClientNumber = 1
)  AS a
GROUP BY a.[Level];  

ただし、Access で次のようなダイアログ ボックスが表示されます。

You tried to execute a query that does not include the specified  
expression 'IIf(a.[Type1Date]<a.[Type2Date],"t1","t2")' as part  
of an aggregate function.  

誰かがこれが何を意味するのかを説明し、私が要求しているフィールド (Level、nextDate、Type) を返すようにコードを修正する方法を教えてもらえますか?

4

1 に答える 1

4

グループ クエリでは、列が Group By ステートメントまたは集計に含まれていない限り、列を Select ステートメントに含めることはできません。したがって、おそらく使用したいでしょう:

GROUP BY a.[Level], IIf(a.[Type1Date]<a.[Type2Date],"t1","t2")
于 2013-10-04T19:42:03.377 に答える