2012-10-15 113 views
0

余米尝试运行在2007年访问这给访问SQL查询聚合函数

“试图执行一个查询,不包括指定表达式“轮(volumePass /音量* 100,2该错误的SQL )'作为聚合函数的一部分“。

我却由圆形在SQL语句中提到

组(volumePass /卷* 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”仍然不起作用,并给出相同的错误。

此查询在访问查询设计器中工作良好,但不能用vba中的sql运行。

更新:

得到它使用DAO引擎VBA。与ADODB引擎

回答

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

round()没有运气不是聚合函数来运行。你也必须在这些领域进行分组(volumepass和volume),并且你会遇到同样的错误,包括准确性,准确性,报告月份等等,你的下两条线会出现同样的错误...

+0

我的答案只是修复他的小组按问题......但是你的回答提出了一个有效的问题 - 他真的想要根据这个百分比或者构成该价值的价值进行分组。 –