sql查询太复杂了

时间:2014-08-18 16:56:36

标签: sql ms-access

请帮我简化这个复杂的查询语句,因为当我运行代码时,它总是会以"查询过于复杂为止#34;错误

SELECT tblTimeReport.DBIDTimeReport, tblTimeReport.DBIDHumanResource
     , tblHumanResource.FullName, tblHumanResource.Title, tblTimeReport.DBIDProject
     , tblProject.ProjectID, tblProject.ProjectName, tblTimeReport.DBIDActivity
     , tblActivity.ActivityID, tblActivity.ActivityName, tblTimeReport.DateTR AS TRDate
     , tblTimeReport.StartTime, tblTimeReport.Duration, tblTimeReport.HourlyRate
     , Sum([Duration]*[HourlyRate]) AS Cost, tblTimeReport.Comments, tblTimeReport.Deleted
     , tblTimeReport.InputBy, tblHumanResourceInput.[FullName] AS InputByFullName
     , tblTimeReport.InputDate
FROM (((tblTimeReport 
LEFT JOIN tblHumanResource 
    ON tblTimeReport.DBIDHumanResource = tblHumanResource.DBIDHumanResource) 
LEFT JOIN tblHumanResource AS tblHumanResourceInput 
    ON tblTimeReport.InputBy = tblHumanResourceInput.DBIDHumanResource) 
LEFT JOIN tblProject 
    ON tblTimeReport.DBIDProject = tblProject.DBIDProject) 
LEFT JOIN tblActivity ON tblTimeReport.DBIDActivity = tblActivity.DBIDActivity
%WhereCondition%
GROUP BY tblTimeReport.DBIDTimeReport, tblTimeReport.DBIDHumanResource
       , tblHumanResource.FullName, tblHumanResource.Title, tblTimeReport.DBIDProject
       , tblProject.ProjectID, tblProject.ProjectName, tblTimeReport.DBIDActivity
       , tblActivity.ActivityID, tblActivity.ActivityName, tblTimeReport.DateTR
       , tblTimeReport.StartTime, tblTimeReport.Duration, tblTimeReport.HourlyRate
       , tblTimeReport.Comments, tblTimeReport.Deleted, tblTimeReport.InputBy
       , tblHumanResourceInput.FullName, tblTimeReport.InputDate

提前致谢

1 个答案:

答案 0 :(得分:0)

如果这是针对报告的,正如列的名称所暗示的那样,您将体验到这一点:

  

报告为报告的每个部分创建临时查询,   包括报告标题,页眉,组标题,详细信息   部分,组页脚,页脚和报表页脚。全部   每个报告的临时查询被合并为一个分段   虚拟表(SVT)。最终输出必须在64K内编译   分段限制。

http://support.microsoft.com/kb/103429

因此,即使您的查询是在限制内编译的,它的大小也会乘以部分的数量。本文暗示较新版本的Access增加了动态限制,这可能会有所帮助。

您可以尝试通过聚合为组创建视图,并省略所有名称列,并仅包含关键ID。然后对视图使用连接以引入名称。我不确定这是否会有所帮助,因为我不知道只要Access编译查询,视图的内容是否会被拉入。