У меня есть база данных Sqlite с таблицей, содержащей финансовые транзакции.Подходящими столбцами являются дата, номер заказа и суммы дебетовых и кредитных операций.Мне нужно отобразить эти транзакции и получить промежуточный итог, рассчитанный на основе произвольного начального баланса (который всегда является первой записью).
Я создал представление на основе этого запроса:
SELECT t1.[ID], t1.[Date], t1.[PO], t1.[Debit], t1.[Credit],
( SELECT SUM( t2.[Credit] ) - SUM ( t2.[Debit] )
FROM [Transaction] t2
WHERE t2.[ID] <= t1.[ID] ) AS [Balance]
FROM [Transaction] t1
и это работает.Проблема в том, что иногда мне нужно сделать заказ по дате и / или PO #, и когда я делаю это, когда значение столбца Баланс является правильным, это не в порядке.Кроме того, мне нужно отфильтровать по дате, поэтому я не думаю, что смогу использовать вычисляемый столбец в таблице транзакций.
Я рассмотрел использование значения ROWID
, но без изменений.Насколько я могу найти, Sqlite не поддерживает ROW_NUMBER() OVER()
.Я потратил пару дней, пытаясь обдумать это без удачи.
Это приложение .NET Compact Framework, Sqlite ADO.NET версия 1.0.66 (не уверен, какая версия движка Sqlite этоесть).