01
About this report
For every bank account, the general ledger balance through today in base currency, from the primary accounting book. Next to it are the amounts in and out over the last 30 days, the net movement and the date of the last posting.
This is the book balance, not the bank statement balance, so uncleared cheques and deposits in transit are included. Foreign-currency accounts show their base-currency value. The account name opens the account.
02
Sample preview
Fictional figures in the shape you will see. Yours come from your account.
| Bank account | Balance | In, last 30 days | Out, last 30 days | Net, last 30 days | Last posting |
|---|---|---|---|---|---|
| 1000 Operating account | 842,300.15 | 612,400 | 571,880.40 | 40,519.60 | 2026-09-23 |
| 1010 Payroll account | 48,200 | 290,000 | 286,410 | 3,590 | 2026-09-19 |
| 1020 USD account | 131,950.80 | 88,400 | 12,200 | 76,200 | 2026-09-22 |
| 1050 Savings | 250,000 | 0 | 0 | 0 | 2026-06-30 |
03
The SuiteQL
This is the query each report runs. Read it, copy it, or change it after import.
SELECT a.id AS account__id,
a.displaynamewithhierarchy AS account,
SUM(tal.amount) AS balance,
SUM(CASE WHEN t.trandate > TRUNC(SYSDATE) - 30 AND tal.amount > 0 THEN tal.amount ELSE 0 END) AS inflow_30,
SUM(CASE WHEN t.trandate > TRUNC(SYSDATE) - 30 AND tal.amount < 0 THEN -tal.amount ELSE 0 END) AS outflow_30,
SUM(CASE WHEN t.trandate > TRUNC(SYSDATE) - 30 THEN tal.amount ELSE 0 END) AS net_30,
TO_CHAR(MAX(t.trandate), 'YYYY-MM-DD') AS last_posting
FROM transactionaccountingline tal
JOIN accountingbook ab ON ab.id = tal.accountingbook AND ab.isprimary = 'T'
JOIN transaction t ON t.id = tal.transaction
JOIN account a ON a.id = tal.account
WHERE tal.posting = 'T'
AND a.accttype = 'Bank'
AND t.trandate <= SYSDATE
GROUP BY a.id, a.displaynamewithhierarchy
ORDER BY balance DESC04