powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Overdraft
3 сообщений из 3, страница 1 из 1
Overdraft
    #37416972
maximand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет,

Есть запрос к базе описанной тут: http://www.sql.ru/forum/actualthread.aspx?tid=822745

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        select * from (
        select a.accountname as AccountName
        , ifnull(a.initialbal, 0 ) as initialbal
        , round (ifnull (i.amount, 0 )+ifnull (o.toamount, 0 )+ifnull (a.initialbal, 0 ), 2 ) as balance
        , c.baseconvrate
        , c.currency_symbol
        , a.notes
        from  accountlist_v1 a
        left join currencyformats_v1 c on c.currencyid=a.currencyid
        left join (select sum (case transactiontype when 'Transfer' then -amount else amount end) as amount, accountid from alldata where status not in ('V') group by accountid ) i on a.accountid=i.accountid
        left join (select sum (totransamount) as toamount, toaccountid from alldata where transactiontype='Transfer' and status not in ('V') group by toaccountid ) o on a.accountid=o.toaccountid
        where a.accounttype='Checking' and a.status<>'Closed'
        group by a.accountname
        order by a.accountname) t
       
Он возвращает название счёта и баланс. Баланс считаю как сумму всех проводок плюс переводы на этот счёт.
Вопрос, как посчитать овердрафт. Т.е. Последнюю дату, когда баланс стал отрицательным?
...
Рейтинг: 0 / 0
Overdraft
    #37417436
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
maximand,

Сделать выборку нарастающим итогом, далее очевидно.
...
Рейтинг: 0 / 0
Overdraft
    #37418304
maximand
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MBG,

Да есть у меня отчёт по конкретнному счёту
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    select   c.transdate as Date, c.transactionnumber as Number
    , ifnull(p.payeename,(select accountname from accountlist_v1 where accountid=(case c.toaccountid when u.accountid then c.accountid else c.toaccountid end))) as Payee
    , c.status as Status
    , ifnull((ca.categname||case when s.subcategname is not NULL then ':'||s.subcategname else '' end), 'Splited') as Category,
    (case  when c.transcode='Withdrawal'  or (c.transcode='Transfer' and c.accountid=u.accountid ) then c.transamount else  '' end) as Withdrawal,
    case  when c.transcode='Deposit'  then c.transamount when c.transcode='Transfer' and c.toaccountid=u.accountid then c.totransamount else  '' end as Deposit,
    round((select a.initialbal from accountlist_v1 a where a.accountid=u.accountid )
    +ifnull((select sum(c0.transamount*
    (case  when c0.transcode='Deposit' then  1 . 0  else - 1 . 0  end)
    ) from checkingaccount_v1 c0 where (c0.transdate<c.transdate or ( c0.transdate=c.transdate and c0.transid<=c.transid)) and c0.accountid=u.accountid and c0.status<>'V'), 0 )
    +ifnull((select sum(c2.totransamount) from checkingaccount_v1 c2 where (c2.transdate<c.transdate or (c2.transdate=c.transdate and c2.transid<=c.transid)) and c2.transcode='Transfer' and c2.toaccountid=u.accountid) , 0 ), 2 )
    as Balance,
    c.notes as "------------= Notes =------------"
    from checkingaccount_v1 c, (select accountid from accountlist_v1 where accountname='$Наличные') u /*Specifiy the name of account in this line */
    left join payee_v1 p on  c.payeeid=p.payeeid
    inner join category_v1 ca on c.categid=ca.categid
    left join subcategory_v1 s on s.subcategid=c.subcategid
    where c.accountid=u.accountid or c.toaccountid=u.accountid
    order by c.transdate, c.transid    
Подумаю, как реализовать, то что так очевидно..
т.е. оставить лишь сроку первую из последних отрицательных. Хм а как?
И соединить с первым запросом. Надеюсь не сто лет думать будет такая конструкция.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Overdraft
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]