Mudassar Ali Ответов: 1

Как рассчитать текущий баланс в SQL


Я использую встроенную базу данных derby и хочу добавить столбец текущего баланса путем расчета сумм дебета и кредита поэтому пожалуйста скажите мне код решения и изображение также доступны ниже

(как вы можете видеть на изображении баланс total не является точным)
SELECT 
V_DATE,FLAG,V_NUM,V_NARATION,
sum(VDTL.DR_AMOUNT) AS DEBIT,
sum(VDTL.CR_AMOUNT) AS CRIDIT,
sum(dr_amount)-sum(cr_amount) as total
FROM VOUCHARDETAIL AS VDTL
INNER JOIN VOUCHARMASTER AS VMST
ON VDTL.DTL_NUM =VMST.MST_NUM
WHERE (V_DATE BETWEEN '12-03-2017' AND '14-03-2017') AND (FLAG='IV' OR FLAG='BR'
OR FLAG='CP' OR FLAG='CR' OR FLAG='JV' OR FLAG='BP') AND (AC_CODE=60030002) 
GROUP BY
V_DATE,FLAG,V_NUM,V_NARATION
ORDER BY
V_DATE


Что я уже пробовал:

бегущая колонка баланса требует

Tomas Takac

Тебе не нравится этот ответ? derby - Как рассчитать текущий баланс в SQL-Stack Overflow[^]

CHill60

1. нет изображения (потому что вы не можете разместить их здесь)
2. Мы не можем видеть, что общая сумма баланса не является точной, потому что вы не предоставили никаких выборочных данных
3. Этот конкретный вопрос уже был дан ответ на переполнение стека.

Так... какой у вас вопрос? Что плохого в решении, которое вам уже дали?

1 Ответов

Рейтинг:
0

pooranendu

Чтобы получить текущий баланс, вы можете использовать предложение Sum (value)Over (Order by), например

SELECT 
V_DATE,FLAG,V_NUM,V_NARATION,
sum(VDTL.DR_AMOUNT) AS DEBIT,
sum(VDTL.CR_AMOUNT) AS CRIDIT,
sum(dr_amount)-sum(cr_amount) as total,
sum(dr_amount-cr_amount)Over(Order by V_DATE)
FROM VOUCHARDETAIL AS VDTL
INNER JOIN VOUCHARMASTER AS VMST
ON VDTL.DTL_NUM =VMST.MST_NUM
WHERE (V_DATE BETWEEN '12-03-2017' AND '14-03-2017') AND (FLAG='IV' OR FLAG='BR'
OR FLAG='CP' OR FLAG='CR' OR FLAG='JV' OR FLAG='BP') AND (AC_CODE=60030002) 
GROUP BY
V_DATE,FLAG,V_NUM,V_NARATION
ORDER BY
V_DATE