Для остатка по счетам дата начала не нужна.
В Вашем случае элементарно работает
select AccID, CurrID, sum(Debet+ Credit) from t where
ValueDate <=EndDate
group by AccID,CurrID
|
|
Получите остатки с группировкой по счетам и валютам. А как с курсом валюты быть, если ее надо пересчитывать в какую-то одну - это уже другой вопрос.
Лично мне данная структура таблицы не нравится, на мой взгляд, гораздо лучше иметь
Код счета (AccId), Количество (Quantity), Код валюты (CurrId), Дата (ValueDate)
Количество будет с плюсом для прихода и с минусом для расхода.
Как быть, если таблица растет и время выполнения становится все больше и больше - мне сейчас подробно писать лень. В общих чертах - операции старше n лет сбрасываются в архив.