я еще новичок в SQL, я нужна ваша помощь, у меня есть таблица, которые выглядят как этотSQL запрос для запуска баланса
ses_date trx_no amount 02-04-2014 27487776I 1000 03-05-2014 27485776Y -500 01-02-2014 65474645H 4500 09-01-2014 65474656D -3400
и я нужен выход, как этот
ses_date trx_no amount Debit Credit Balance 02-04-2014 27487776I 1000 0.00 1000.00 1000 03-05-2014 27485776Y -500 -500 0.00 500 01-02-2014 65474645H 4500 0.00 4500.00 5000 09-01-2014 65474656D -3400 -3400.00 0.00 1600
точно так же, как отчет о счете, но в моем случае я не имею дебетов и кредитов отдельно, они вместе.
Большое спасибо за вашу помощь и поддержку, вы лучшие. моя СУБД Microsoft SQL Server 2008. Я пытаюсь использовать этот запрос
SELECT ses_date, trx_no, amount,
CASE WHEN amount<0 THEN amount ELSE 0 END debit,
CASE WHEN amount>0 THEN amount ELSE 0 END credit,
(SELECT SUM(amount) FROM mytable a WHERE a.ses_date<=mytable.ses_date) balance
FROM mytable
ORDER BY ses_date;
, но это дает (0.00) в колонке баланса ZERO все через, но дебет и кредит в порядке. что мне делать.
и когда я использую второй запрос
select ses_date,
trx_no,
amount,
case
when amount < 0 then amount
else 0
end as debit,
case
when amount >= 0 then amount
else 0
end as credit,
sum(amount) over (order by ses_date) as balance
from the_table
order by ses_date
ошибка
Msg 102, Level 15, State 1, Line 12 Неправильный синтаксис около 'порядок'.
что я буду делать
Что вы используете? – wvdz
Что вы заказываете? Даты не в любом порядке, я вижу ...? –
SQL Server 2008 не поддерживает функции 'order by' для окон. Но ваше другое решение действительно работает для моего примера: http://sqlfiddle.com/#!15/c552e/3 –