Итак, позвольте мне описать, что я хотел бы рассчитать здесь. У меня есть 2 таблицы, в первой таблице, которая называется балансом, у меня есть одна строка для каждой учетной записи и ее соответствующий текущий баланс. На второй таблице у меня есть все депозиты и снятия средств для этих счетов и точное время, когда эти депозиты и снятие средств . Моя проблема заключается в вычислении на основе этих двух таблиц баланса всех счетов за каждый день.mysql расчет баланса, сгруппированный по дате
1.table баланс
|account_id| balance |
|1111 | 1000 |
|2222 | 3500 |
|3333 | 10000 |
2.table кредит
account_id| date |deposit_withdrawal|
|1111 |2012-11-11 12:35:02| 250 |
|1111 |2012-11-12 18:15:34| 750 |
|1111 |2012-11-12 09:09:04| -150 |
|2222 |2012-01-12 10:05:04| 1000 |
|2222 |2012-07-15 14:23:04| -340 |
|2222 |2012-12-29 13:01:04| 450 |
Я выбираю счета с кредитной таблицы, получить сумму их deposit_withdrawal, а затем группу его по DAYOFYEAR.Now я застрял, я не могу понять, как рассчитать их баланс в каждую из этих дат. Как упоминалось выше, в балансовой таблице содержится текущий баланс счетов. Таким образом, самая последняя запись в таблице deposit_withdrawal уже учитывается в таблице баланса.
SELECT c.account_id , c.date , SUM(c.deposit_withdrawal) FROM credit c
JOIN balance b on b.account_id = c.account_id
GROUP by DAYOFYEAR (c.date)
ORDER BY DAYOFYEAR(c.date) DESC
EDIT: Спасибо всем за ваши ответы, и позвольте мне объяснить это немного больше, позволяет сказать, что у нас есть счет с текущим балансом 2000 г. В таблице кредита он имеет 3 записей, 1 на 2012-10 -10 с выводом 300, 1 в 2012-11-11 с депозитом 400 и последним и самым последним в 2013-02-29 с депозитом 150. То, что я хочу сделать, это найти его баланс для все даты между 2013-02-29 и 2012-10-09. Я знаю, что в 2013-02-29, который является самым последним, его баланс равен его текущему балансу = 2000. Так что накануне, в 2013-02-28, я знаю, что его баланс будет текущим балансом (2000) - последний депозит (150) = 1850. До 2012-11-11 его баланс не изменился. В 2012-11-11 он депонировал 400, поэтому накануне в 2012-11-10 его баланс был бы 1850-400 = 1450 и т. Д.
Почему вы должны ПРИСОЕДИНИТЬСЯ к двум? баланс в день не будет равен суммарному балансу –
* «баланс всех счетов за каждый день» * Решение этой проблемы - «ВЫБЕРИТЕ СУММУ (баланс) ОТ баланса», поэтому, я полагаю, вы не просите ваш вопрос правильно. Я не знаю, каков ваш предполагаемый конечный результат. –
Я отредактировал сообщение и включил update.Anyone? – user3001861