Я запускаю этот запрос:
SELECT
job_code_desc,
SumOfDowntime AS DowntimeTotal,
Round(DSum("[SumofDowntime]","DT","[SumOfDowntime]>=" & [DowntimeTotal] & "")/DSum("[SumOfdowntime]","DT"),3) AS CumPct
FROM
(SELECT
pareto_downtime_detail_tbl.job_code_desc,
Sum(pareto_downtime_detail_tbl.downtime) AS SumOfDowntime
FROM
pareto_downtime_detail_tbl
WHERE
(((pareto_downtime_detail_tbl.job_code_desc) Not Like "*break*"
AND (pareto_downtime_detail_tbl.job_code_desc) Not Like "*prep*"))
GROUP BY
pareto_downtime_detail_tbl.job_code_desc) AS DT;
и получить ошибку:
Ядро базы данных Microsoft Access не может найти входную таблицу или запрос «DT». Убедитесь, что он существует и что его имя написано правильно».
Может ли домен для функции DSum()
быть из подзапроса? Или он должен вызывать из «постоянной» таблицы или запроса? Когда я сохраняю подзапрос (DT) как постоянный запрос и запускаю указанный выше запрос,
SELECT
pareto_lift_downtime_detail_qry.job_code_desc,
pareto_lift_downtime_detail_qry.SumOfdowntime AS DowntimeTotal,
Round(DSum("[SumofDowntime]","pareto_lift_downtime_detail_qry","[SumOfDowntime]>=" & [DowntimeTotal] & "")/DSum("[SumOfdowntime]","pareto_lift_downtime_detail_qry"),3) AS CumPct
FROM
pareto_lift_downtime_detail_qry;
он работает успешно, но с заметным отставанием в производительности. Затем я использовал новый запрос pareto_lift_downtime_detail_qry
в качестве запроса на создание таблицы, а затем сослался на эту новую таблицу. Это делает то, что я хочу, с соответствующей скоростью, но у меня есть две причины не использовать запросы make-table. Я хочу, чтобы этот файл был как можно более организованным, и эти данные будут обновляться еженедельно клерком с небольшим знанием Access и нулевым опытом работы с запросами/базами данных, поэтому он не будет делать новые запросы на создание таблиц каждую неделю.