0

アクセス2007でSQLを実行しようとすると、エラーが発生します

「集計関数の一部として、指定された式'round(volumePass / Volume * 100,2)'を含まないクエリを実行しようとしました。」

私はSQLステートメントでそれについて言及しましたが

ラウンドごとのグループ化(volumePass / Volume * 100,2)

SELECT s.[sub process name], Round(Avg(s.[TollGate FTEs]),2) AS TollGateFTEs, 
Sum(w.volume) AS Volume, 
Sum(Switch(w.TAT='Pass',w.Volume,w.TAT='Fail',0)) AS VolumePass, 
Sum(IIf(w.[combined accuracy]='PASS',1,0)) AS AccuracyPass, 
Sum(IIf(w.[combined accuracy]='',0,1)) AS TotalAccuracy, 
Round((VolumePass/Volume)*100,2) AS TATPercentage, 
Round((AccuracyPass/TotalAccuracy)*100,2) AS AccuracyPercentage, 
Format(w.[reporting month],'mmm-yy') AS [Rep Month] FROM Work_Log1 AS w, 
[sub process] AS s WHERE w.[sub process] In (SELECT s.[sub_process_id] FROM 
[Sub Process] s, 
[process mapping] m where m.[process name] like 'Accounting Control%'  
and s.[mapped to process id] = m.[mapping id]) And w.[sub process]=[s].[sub_process_id] 
AND (w.[Activity_start_date] Between #06/01/2012# And #06/15/2012#)  
AND ([w].[sla applicable]=1 Or 0 Or '') and 
(w.[status] Like 'Complete%')  group BY Format(w.[reporting month],'mmm-yy'), 
s.[sub process name], (Round((VolumePass/Volume)*100,2));

正しく拾えないのはどこですか。

エイリアス「TATPercentage」を指定しても機能せず、同じエラーが発生します。

このクエリはAccessクエリデザイナではうまく機能しますが、vba内のsqlでは実行できません。

アップデート:

vbaのdaoエンジンを使用して実行するようになりました..adodbエンジンでは運がありません

4

1 に答える 1

1
Round((VolumePass/Volume)*100,2) AS TATPercentage
       ^^^^^^^^^^ ^^^^^^

round()集計関数ではありません。これらのフィールド (volumepass と volume) もグループ化する必要があり、accuracypass、acuracytotal、reporting month などの次の 2 行で同じエラーが発生します。

于 2012-10-15T15:30:08.750 に答える