Ваш запрос будет оцениваться медленно из-за использования вами коррелированного подзапроса, в результате чего запрос, ссылающийся на таблицу Sales Transactions
, будет оцениваться для каждой записи таблицы Periods
.
Вы должны быть в состоянии улучшить производительность за счет соответствующего использования объединений, например, что-то вроде следующего должно дать тот же результат:
SELECT
Periods.LTM_Start,
Periods.Period_End,
Periods.sa_account,
SUM
(
IIF
(
[Sales Transactions].sa_trdate >= Periods.[LTM_Start] AND
[Sales Transactions].sa_trdate <= Periods.[Period_End],
[Sales Transactions].sa_trvalue,
0
)
) AS Total
FROM
Periods LEFT JOIN [Sales Transactions]
ON [Sales Transactions].sa_account = Periods.[sa_account]
GROUP BY
Periods.LTM_Start, Periods.Period_End, Periods.sa_account;