Я хотел бы создать оператор запроса промежуточного итога в Advantage SQL и подумать, что является наиболее эффективным способом. Я могу получить данные с помощью запроса:
SELECT a.fiscal,sum(a.amount) periodTotal,(SELECT sum(b.amount)
FROM tableName b WHERE b.fiscal<=a.fiscal) runningTotal
FROM tableName a GROUP BY a.fiscal,runningTotal
но набор данных большой (более 1 миллиона записей), и поэтому мне интересно, является ли это наиболее эффективным способом получения этой информации.
Исходные данные в таблице выглядят так:
Fiscal Account
Period ID Amount
====== ======= ======
1 Cash 1
1 Cash 2
2 Cash 1
2 Cash 2
1 A/R 1
1 A/R 2
2 A/R 1
2 A/R 2
Я бы хотел, чтобы результаты были такими:
Total
Fiscal Account For Running
Period ID Period Total
====== ======= ====== =======
1 Cash 3 3
2 Cash 3 6
1 A/R 3 3
2 A/R 3 6