Поскольку агрегации выполняются на определенных уровнях, вам необходимо использовать производную таблицу или второй запрос, который является источником первой агрегации.Это верно для всех баз данных с учетом основанной на множестве структуры таблиц:
SELECT SUM(TY_LY) / SUM(LY_YBL) AS final_result
FROM
(SELECT
SUM(dbo_tbl1_TYsales) AS TY, SUM(dbo_tbl1_LYsales) AS LY,
SUM(dbo_tbl1_TYsales) + SUM(dbo_tbl1_LYsales) AS [TY_LY],
SUM(dbo_tbl1_LYsales) + SUM(dbo_tbl1_YBLsales) AS [LY_YBL] ,
FROM mytable) t
В качестве альтернативы с несколькими запросами:
Запрос 1
SELECT SUM(dbo_tbl1_TYsales) AS TY, SUM(dbo_tbl1_LYsales) AS LY,
SUM(dbo_tbl1_TYsales) + SUM(dbo_tbl1_LYsales) AS [TY_LY],
SUM(dbo_tbl1_LYsales) + SUM(dbo_tbl1_YBLsales) AS [LY_YBL]
FROM mytable
Запрос 2
SELECT SUM(TY_LY) / SUM(LY_YBL) AS final_result
FROM Query1
И, возможно, команда Microsoft Access однажды продвинет диалект SQL JET / ACE (~ quasi ANSI-1989) к текущим стандартам ANSIи реализовать CTE (представленные в ANSI-1999) и даже оконные функции (представленные в ANSI-2003).
ПРИМЕЧАНИЕ : ниже не будет работать в любой версии MS Access (опубликовано как демо).
WITH cte AS
(SELECT
SUM(dbo_tbl1_TYsales) AS TY, SUM(dbo_tbl1_LYsales) AS LY,
SUM(dbo_tbl1_TYsales) + SUM(dbo_tbl1_LYsales) AS [TY_LY],
SUM(dbo_tbl1_LYsales) + SUM(dbo_tbl1_YBLsales) AS [LY_YBL] ,
FROM mytable)
SELECT SUM(TY_LY) / SUM(LY_YBL) AS final_result
FROM cte;