Совокупная сумма MS Access по дате?

Я пытаюсь что-то вроде

Select myTable.eDate, Sum(myTable.revenue) from MyTable 
GROUP BY MyTable.eDate HAVING (((MyTable.eDate) >= #1/1/2014#))

Я пытаюсь, чтобы он в основном показывал «Общий доход на 1 января — это, общий доход на 2 января — это, общий доход на 3 января — это и т. д.» по всем датам последовательно.

Своего рода «скользящая кумулятивная сумма», если это имеет смысл.

Примечание. В MyTable есть eDates/доходы до 1 января, поэтому я также пытаюсь ограничить все, чтобы он даже не просматривал строки до 1 января.

Я также пробовал DSum, но это тоже не сработало.

я тоже пробовал

select
a1.eDate,
(
select Sum(a2.revenue)
FROM MyTable as a2
where
a2.eDate <= a1.eDate
) as RunningTotal
FROM MyTable as a1

person user3219632    schedule 26.03.2014    source источник
comment
К вашему сведению, в зависимости от ваших требований, вам может быть лучше не делать это как SQL-запрос, а вместо этого использовать отчет Access, чтобы сделать это за вас - отчеты имеют общие возможности, тогда как с Access SQL вам как бы приходится бороться с этим немного, чтобы заставить его делать то, что вы хотите.   -  person Yawar    schedule 30.03.2014


Ответы (1)


Извините, но у меня недостаточно представителей, чтобы комментировать.

То, что я думаю, вы пытаетесь сделать, это промежуточный итог

SELECT (SELECT sum(revenue) from myTable a2
where a1.edate >= a2.edate)
as RunningSumField1,
edate from myTable as a1 
group by a1.edate
order by a1.edate

попробуйте эту ссылку:

MS Access 2010 Текущая сумма в запросе

person KerSplosh    schedule 26.03.2014
comment
У меня нет поля с именем id, и я пытаюсь получить совокупную сумму по дате. - person user3219632; 26.03.2014
comment
Я снова обновил свой ответ, удалив столбец id - это должно помочь - person KerSplosh; 26.03.2014
comment
Должен ли я говорить myTable a2 или myTable как a2? - person user3219632; 26.03.2014
comment
Это действительно работает, спасибо! Интересно, почему мой исходный код не работал. Они выглядят почти одинаково, за исключением того, что у вас есть группа/порядок в конце - person user3219632; 26.03.2014
comment
Отлично - рад помочь. К вашему сведению, вы делаете промежуточный итог, поэтому вам нужно упорядочить данные, чтобы вы могли сказать, как получить сумму в порядке даты, предложение group by позволяет вам суммировать за день - person KerSplosh; 26.03.2014