0

我以前解决过这个问题。不幸的是,我很难记住我的解决方案。

我有三个组合框,其中一个(Quarter)用户可以选择留空。所有三个组合框都附加到查询中的字段。每个字段都设置为执行分组依据(案例经理、会计年度、季度)。如果 Quarter 的组合框不为空,则查询过滤器正确。它为案例管理器、会计年度和季度执行分组依据。

当 Quarter 的组合框留空时,查询应该只 Group By Case Manager 和 Fiscal Year。目前,它还按季度执行 Group By。

这是查询的 SQL:

SELECT tblCM.CM, tblFY.FiscalYear, tblQtr.Quarter, Count(tblData.CaseNum) AS CountOfCaseNum,
Avg(tblData.[DaysToNotifySite-CompleteCalc]) AS [AvgOfDaysToNotifySite-CompleteCalc],
Avg(tblData.[Days to Contact Site]) AS [AvgOfDays to Contact Site],
Avg(tblData.DaysToHoldMedAfterOrder) AS AvgOfDaysToHoldMedAfterOrder,
Avg(tblData.DaysToHoldMed) AS AvgOfDaysToHoldMed,
Avg(tblData.DaysToIssueDGODec) AS AvgOfDaysToIssueDGODec,
Avg(tblData.DaysToCloseAfterDecRecdByNRC) AS AvgOfDaysToCloseAfterDecRecdByNRC,
Avg(tblData.DaysToCloseCase) AS AvgOfDaysToCloseCase

FROM tblQtr INNER JOIN (tblFY INNER JOIN (tblCM INNER JOIN tblData ON  tblCM.CM = tblData.[CMNames-Corrected])
ON tblFY.FiscalYear = tblData.FiscalYearFilingForm) ON tblQtr.Quarter =  tblData.QtrFilingFormRec

WHERE (((tblData.Type)<>"DRA"))

GROUP BY tblCM.CM, tblFY.FiscalYear, tblQtr.Quarter

HAVING (((tblCM.CM)<>"Doe, John" And (tblCM.CM)=[Forms]! [frmIndividualGoals]![cboCM])
AND ((tblFY.FiscalYear)=[Forms]![frmIndividualGoals]![cboFY])
AND ((tblQtr.Quarter)=IIf([Forms]![frmIndividualGoals]![cboQtr]<>'',[Forms]![frmIndividualGoals]![cboQtr])))
OR (((tblCM.CM)<>"Doe, John" And (tblCM.CM)=[Forms]![frmIndividualGoals]![cboCM])
AND ((tblFY.FiscalYear)=[Forms]![frmIndividualGoals]![cboFY])
AND (([Forms]![frmIndividualGoals]![cboQtr]) Is Null));

SELECT 语句很好。我当然可能是错的。但是,我相信我的问题出在最后一个 AND 语句中。但是,我提供了我所有的 SQL 以供参考。

目前,我只是在组合框中进行选择后使用命令按钮打开查询以测试结果。

感谢您提供任何人都可以提供的帮助。

4

0 回答 0