SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 14.03.2022 15:14:09

kevin
Участник
Зарегистрирован: 14.03.2022
Сообщений: 1

Баланс нарастающим итогом

Вопрос от первоклассника в SQL
Финансовая таблица. В таблице дата, сумма, тип.
Нужно получить баланс нарастающим итогом на каждый день.

Проблема в том, что сумма всегда положительная, расходная транзакция только от типа зависит (приход: 3,6. расход 2,5)

Есть вот такой вариант

WITH day_out AS (
  SELECT DATE(datePay) AS day_out, SUM(amount) AS amount
  FROM money
    WHERE payType IN (2,3,6)
  GROUP BY DATE(datePay)
),
day_in AS (
  SELECT DATE(datePay) AS day_in, SUM(amount) AS amount
  FROM money
    WHERE payType IN (9,4,5)
  GROUP BY DATE(datePay)
)
SELECT day_out, SUM(day_out.amount) OVER (ORDER BY day_out) AS balance_out

FROM day_out


Если добавлю в выборку day_in, то запрос зацикливается. А нужно еще и выборку за период делать, но считать-то итог все равно с самой первой записи. И, по-хорошему, еще и с разбивкой по  запросу по дням/неделям/месяцам/годам.

Сможете помочь? Третий день экспериментирую. Не хватает знаний.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson