Account Ledger by Account Greece Report
The Greek statutory account ledger — every posting to each general ledger account over a period, in date order with a running balance, in the format the Greek authorities require for the books of account.
Run note · BIP run High-volume GL extracts can exceed BI Publisher's online output limit and time out. Run it as a scheduled process (ESS) with output bursted to file or email rather than online preview, and bound it by ledger and period.
Sample build of the Account Ledger by Account Greece Report — reconciled, and rendered tool-neutral so it runs in Power BI, ThoughtSpot, or Tableau.
| Account | Journal Date | Source | Debit | Credit | Running Balance |
|---|---|---|---|---|---|
| 1000-2100-000 | 2026-04-30 | Sample | $1,240,500.00 | $1,240,500.00 | $1,240,500.00 |
| 1000-5400-000 | 2026-03-31 | — | $842,150.75 | $842,150.75 | $842,150.75 |
| 1000-1410-000 | 2026-02-28 | Sample | $96,400.00 | $96,400.00 | $96,400.00 |
| 2000-2100-000 | 2026-01-31 | — | $1,005,233.10 | $1,005,233.10 | $1,005,233.10 |
| 1000-6300-000 | 2025-12-31 | Sample | $58,720.40 | $58,720.40 | $58,720.40 |
| 1000-2100-000 | 2026-04-30 | Sample | $1,240,500.00 | $1,240,500.00 | $1,240,500.00 |
The report reads GL_JE_LINES per account in date order, carrying a running balance in the Greek statutory layout.
A few accounts carry backdated postings whose journal date precedes their entry date — the statutory book must present movements in strict date order, so these can break the legal sequence.
Confirm the backdated entries are authorized adjustments and document them; Greek statutory ledgers require chronological integrity, so unexplained backdating is a filing risk.
This is the report's BI Publisher data model — the SQL data set BI Publisher runs against Oracle tables to produce the output. The same SQL becomes a dbt model in your warehouse, so one definition drives both the formatted report and the analytics layer.
Data sources
Show / hide SQL
select
Natural_Account_Segment
,ACCOUNT_DECSCRIPTION
,ACC
,GL_DATE
,TRANSACTION_DATE
,ENTITY_DESCRIPTION
,Reporting_Sequence
,period_name
,TRANSACTION_NUMBER
,LEDGER_NAME
,ENTERED_CUR
,Transaction_Type
,Journal_Description
,CURRENCY
,RUN_DATE
,CASE
WHEN NVL(DEBIT, 0) <> 0 THEN 'DEBIT'
WHEN NVL(CREDIT, 0) <> 0 THEN 'CREDIT'
END AS TYPE
,HEADER_ID
,SUM(DEBIT) DEBIT
,SUM(CREDIT) CREDIT
,(SUM(DEBIT)-SUM(CREDIT)) TOTAL
,NVL(BEG_BAL_DR,0) BEG_BAL_DR
,NVL(BEG_BAL_CR,0) BEG_BAL_CR
,NVL(BEG_BAL_TOTAL,0) BEG_BAL_TOTAL
FROM
(SELECT
gjl.EFFECTIVE_DATE GL_DATE
,XECT.NAME EVENTNAME
,xet.name eventtype
,GJH.JE_HEADER_ID HEADER_ID
,XEV.TRANSACTION_DATE
,GCC.SEGMENT4 Natural_Account_Segment
,GJC.je_category_name catname
,GJS.je_source_name souname
,GCC.SEGMENT4 ACC
,gjh.NAME GL_JE_NAME
,GJB.APPROVAL_STATUS_CODE
,GCC.segment1
,gjh.period_name
,GP.end_date
,GP.START_DATE
--,XTE.TRANSACTION_NUMBER
, CASE WHEN GJC.JE_CATEGORY_NAME in ('Sales Invoices', 'Credit Memos' )
THEN (SELECT ATTRIBUTE1 FROM RA_CUSTOMER_TRX_ALL WHERE CUSTOMER_TRX_ID =XTE.SOURCE_ID_INT_1)
ELSE XTE.transaction_number END TRANSACTION_NUMBER
/*,(CASE WHEN GJS.USER_JE_SOURCE_NAME IN ('Payables','Receivables')
THEN NVL(XAH.CLOSE_ACCT_SEQ_VALUE,XAH.COMPLETION_ACCT_SEQ_VALUE)
ELSE NVL(GJH.close_acct_seq_value,GJH.posting_acct_seq_value)
END) Reporting_Sequence*/
,NVL(XAH.CLOSE_ACCT_SEQ_VALUE,GJH.CLOSE_ACCT_SEQ_VALUE) Reporting_Sequence
,gl.name LEDGER_NAME
,GJL.currency_code ENTERED_CUR
,(CASE WHEN GJS.je_source_name ='Receivables' THEN
(CASE WHEN GJC.JE_CATEGORY_NAME='Receipts' AND XAL.ACCOUNTING_CLASS_CODE = 'WRITE_OFF'
Then 'ΔΙΑΓΡΑΦΗ ΕΙΣΠΡΑΚΤΕΟΥ ΥΠΟΛΟΙΠΟΥ'
WHEN XAL.ACCOUNTING_CLASS_CODE = 'REFUND'
Then 'ΕΠΙΣΤΡΟΦΗ ΠΙΣΤΩΤΙΚΟΥ ΥΠΟΛΟΙΠΟΥ'
When GJC.JE_CATEGORY_NAME='Receipts' AND XAL.ACCOUNTING_CLASS_CODE NOT IN ('WRITE_OFF', 'REFUND')
THEN (SELECT (CASE WHEN ARM1.PRINTED_NAME = 'ORA_AP/AR Netting' Then 'ΣΥΜΨΗΦΙΣΜΟΣ ΠΕΛΑΤΗ - ΠΡΟΜΗΘΕΥΤΗ'
ELSE ARM1.PRINTED_NAME END)
FROM AR_CASH_RECEIPTS_ALL ACRA
, ar_receipt_methods ARM1
WHERE XTE.transaction_number = ACRA.RECEIPT_NUMBER
AND ACRA.RECEIPT_METHOD_ID = ARM1.RECEIPT_METHOD_ID
AND ACRA.CASH_RECEIPT_ID = XTE.SOURCE_ID_INT_1
AND ACRA.ORG_ID=(SELECT BU_ID
FROM FUN_ALL_BUSINESS_UNITS_V
WHERE BU_NAME='GR BU EUR'
AND STATUS='A'
))
WHEN GJC.JE_CATEGORY_NAME IN ('Misc Receipts','Adjustment') THEN (SELECT ARTRX.DESCRIPTION FROM AR_RECEIVABLES_TRX_ALL ARTRX, AR_ADJUSTMENTS_ALL ARADJ
WHERE ARTRX.RECEIVABLES_TRX_ID = ARADJ.RECEIVABLES_TRX_ID AND ARADJ.ADJUSTMENT_ID = XTE.SOURCE_ID_INT_1 )
ELSE FLVCAT.MEANING
END)
WHEN GJS.je_source_name ='Payables' AND GJC.JE_CATEGORY_NAME ='Purchase Invoices' AND XTE.TRANSACTION_NUMBER LIKE 'EXP%' THEN 'Εξοδολόγια εργαζομένων'
WHEN GJS.je_source_name ='Payables' AND GJC.JE_CATEGORY_NAME ='Purchase Invoices' AND (SELECT SOURCE FROM AP_INVOICES_ALL WHERE INVOICE_ID=XTE.SOURCE_ID_INT_1 AND PAY_PROC_TRXN_TYPE_CODE = 'AR_CUSTOMER_REFUND') = 'Receivables'
Then 'Αίτημα Πληρωμής'
WHEN GJS.je_source_name ='Payables' AND GJC.JE_CATEGORY_NAME ='Purchase Invoices' THEN
FLVEVCL.MEANING
WHEN GJS.je_source_name ='Payables' AND GJC.JE_CATEGORY_NAME ='Payments' THEN
(CASE WHEN (SELECT DISTINCT PAYMENT_METHOD_NAME FROM IBY_PAYMENT_METHODS_B PMB
, IBY_PAYMENT_METHODS_TL PMT
, AP_CHECKS_ALL ACA
WHERE PMB.PAYMENT_METHOD_CODE=PMT.PAYMENT_METHOD_CODE
AND PMT.LANGUAGE = USERENV('LANG')
AND ACA.CHECK_ID = XTE.SOURCE_ID_INT_1
AND ACA.PAYMENT_METHOD_CODE=PMB.PAYMENT_METHOD_CODE
AND ACA.VENDOR_ID=PS.VENDOR_ID)='AP/AR Netting'
THEN 'ΣΥΜΨΗΦΙΣΜΟΣ ΠΕΛΑΤΗ - ΠΡΟΜΗΘΕΥΤΗ'
ELSE 'ΠΛΗΡΩΜΗ' END)
ELSE FLVCAT.MEANING
END) Transaction_Type
,(CASE WHEN GJS.je_source_name ='Receivables' THEN
(CASE WHEN GJC.JE_CATEGORY_NAME IN ('Sales Invoices', 'Credit Memos' )
THEN (HPC.PARTY_NAME||'/'||HCA.ACCOUNT_NUMBER||'/'||(SELECT COMMENTS FROM RA_CUSTOMER_TRX_ALL WHERE CUSTOMER_TRX_ID =XTE.SOURCE_ID_INT_1 ))
ELSE (HPC.PARTY_NAME||'/'||HCA.ACCOUNT_NUMBER)
END)
WHEN GJS.je_source_name ='Payables' THEN
(CASE WHEN XTE.TRANSACTION_NUMBER LIKE 'EXP%' /*xect.NAME IN('Expense Report','Mixed')*/
THEN ---(XTE.TRANSACTION_NUMBER||'/'||PS.VENDOR_NAME||'/'||PS.SEGMENT1)
( SELECT DISTINCT HZ1.PARTY_NAME || ' / ' || PAPF.PERSON_NUMBER || ' / ' || EXM.PURPOSE FROM EXM_EXPENSE_REPORTS EXM, PER_USERS PER, HZ_PARTIES HZ1, PER_ALL_PEOPLE_F PAPF WHERE HZ1.USER_GUID = PER.USER_GUID and EXM.PERSON_ID = PER.PERSON_ID AND PER.PERSON_ID = PAPF.PERSON_ID AND EXM.EXPENSE_REPORT_NUM = XTE.TRANSACTION_NUMBER) --NEW CONDITION
WHEN GJC.JE_CATEGORY_NAME='Purchase Invoices' AND (SELECT SOURCE FROM AP_INVOICES_ALL WHERE INVOICE_ID=XTE.SOURCE_ID_INT_1 AND PAY_PROC_TRXN_TYPE_CODE = 'AR_CUSTOMER_REFUND') = 'Receivables'
Then (SELECT HZP1.PARTY_NAME || ' / ' || HCA1.ACCOUNT_NUMBER FROM AP_INVOICES_ALL AP1, HZ_CUST_ACCOUNTS HCA1 , HZ_PARTIES HZP1 WHERE AP1.INVOICE_ID=XTE.SOURCE_ID_INT_1 AND AP1.PARTY_ID = HCA1.PARTY_ID AND HCA1.PARTY_ID = HZP1.PARTY_ID)
WHEN GJC.JE_CATEGORY_NAME ='Payments' THEN (PS.VENDOR_NAME||'/'||PS.SEGMENT1||'/'|| (select distinct BANK_ACCOUNT_NUM || ' / ' || vendor_name from AP_CHECKS_ALL
where check_id = XTE.SOURCE_ID_INT_1))
/*(SELECT DISTINCT BANK_ACCOUNT_NUM FROM AP_CHECKS_ALL ACA
WHERE ACA.VENDOR_ID=PS.VENDOR_ID AND ACA.CHECK_ID = XTE.SOURCE_ID_INT_1 AND ROWNUM=1)||'/'||(SELECT DISTINCT BANK_ACCOUNT_NAME FROM AP_CHECKS_ALL ACA
WHERE ACA.VENDOR_ID=PS.VENDOR_ID AND ACA.CHECK_ID = XTE.SOURCE_ID_INT_1 AND ROWNUM=1))*/
ELSE (PS.VENDOR_NAME||'/'||PS.SEGMENT1)
END)
WHEN GJS.je_source_name ='Project Accounting' THEN 'ΚΙΝΗΣΗ ΜΕΤΑΞΥ ΕΡΓΩΝ'
WHEN GJS.je_source_name ='Assets' THEN gjh.PERIOD_NAME
ELSE GJL.DESCRIPTION
END) Journal_Description
,(SELECT DISTINCT FLV.DESCRIPTION
FROM fnd_lookup_values FLV
WHERE FLV.LOOKUP_CODE=GJB.STATUS
AND FLV.LOOKUP_TYPE='MJE_BATCH_STATUS'
AND FLV.LANGUAGE=USERENV('LANG')) BATCH_STAT
,GJB.STATUS
,to_Char(SYSDATE,'DD/MM/YYYY HH24:MI:SS') RUN_DATE
,GL.CURRENCY_CODE CURRENCY
,FT.DESCRIPTION ACCOUNT_DECSCRIPTION
, GJH.posting_acct_seq_value ACCOUNTING_SEQUENCE_NUMBER
, GJS.USER_JE_SOURCE_NAME JE_SOURCE_NAME
, GJC.USER_JE_CATEGORY_NAME JE_CATEGORY_NAME
, GJL.Je_Line_Num
, GJL.CURRENCY_CODE ENTERED_CURRENCY
, GCC.SEGMENT1 LEGAL_ENTITY
, GCC.SEGMENT4 SEGMENT4
, GP.PERIOD_NAME ACCOUNTING_PERIOD
, GJL.code_combination_id
, GL.ledger_id
, NVL(NVL(XAL.ACCOUNTED_DR, GJL.ACCOUNTED_DR),0)DEBIT
, NVL(NVL(XAL.ACCOUNTED_CR, GJL.ACCOUNTED_CR),0)CREDIT
, FT1.NAME ENTITY_DESCRIPTION
, BAL.BEG_BAL_DR
, BAL.BEG_BAL_CR
, BAL.BEG_BAL_TOTAL
, GJS.je_source_name SRC
FROM
GL_LEDGERS GL
, GL_JE_HEADERS GJH
, GL_JE_LINES GJL
, GL_JE_BATCHES GJB
, GL_JE_SOURCES_TL GJS
, GL_JE_CATEGORIES_TL GJC
, GL_CODE_COMBINATIONS GCC
, GL_PERIODS GP
, FND_FLEX_VALUES FFV
, FND_FLEX_VALUES_TL FT
, FND_FLEX_VALUES FFV1
, xle_entity_profiles FT1
, GL_IMPORT_REFERENCES GIR
, XLA_AE_LINES XAL
, XLA_AE_HEADERS XAH
, XLA_TRANSACTION_ENTITIES XTE
, XLA_EVENTS XEV
, XLA_EVENT_TYPES_TL XET
, XLA_EVENT_CLASSES_TL XECT
, XLA_SUBLEDGERS_TL FAT
--, AR_RECEIVABLES_TRX_ALL ARTA
, HZ_CUST_ACCOUNTS hca
, HZ_PARTIES HPC
, poz_suppliers_v ps
, HZ_PARTIES HP
, IBY_EXT_BANK_ACCOUNTS IEBA
, fnd_lookup_values FLVCAT
, fnd_lookup_values FLVEVCL
, ( SELECT
--gb.code_combination_id,
gb.ledger_id
, gcc.segment1
,gcc.segment4
, SUM(NVL(GB.begin_balance_dr_beq, 0)) BEG_BAL_DR
, SUM(NVL(GB.begin_balance_cr_beq, 0)) BEG_BAL_CR
, (SUM(NVL(GB.begin_balance_dr_beq, 0))-SUM(NVL(GB.begin_balance_cr_beq, 0))) BEG_BAL_TOTAL
FROM
gl_balances GB
--gl_ledgers GLL,
, gl_code_combinations gcc
WHERE
1 =1
AND GCC.code_combination_id =gb.code_combination_id
AND GB.period_name=:P_FROM_PERIOD
GROUP BY
gcc.segment1,ledger_id,segment4) BAL
WHERE 1=1
AND GL.NAME = 'PL GREECE EUR LOCAL'
AND GL.LEDGER_ID =GJH.LEDGER_ID
AND GJH.JE_BATCH_ID =GJB.JE_BATCH_ID
AND GJH.JE_HEADER_ID =GJL.JE_HEADER_ID
AND GJH.JE_SOURCE =GJS.JE_SOURCE_NAME
AND GJS.LANGUAGE ='EL'
AND GJH.JE_CATEGORY =GJC.JE_CATEGORY_NAME
AND GJC.LANGUAGE ='EL'
AND GJL.CODE_COMBINATION_ID =GCC.CODE_COMBINATION_ID
AND GP.PERIOD_NAME =GJB.DEFAULT_PERIOD_NAME
AND GP.PERIOD_TYPE =GL.ACCOUNTED_PERIOD_TYPE
AND GCC.SEGMENT4 =FFV.FLEX_VALUE
AND FFV.FLEX_VALUE_ID =FT.FLEX_VALUE_ID
AND FT.LANGUAGE ='EL'
AND FFV.FLEX_VALUE_SET_ID IN (SELECT FLEX_VALUE_SET_ID
FROM FND_ID_FLEX_SEGMENTS
WHERE APPLICATION_ID = '101'
AND ID_FLEX_CODE = 'GL#'
AND ENABLED_FLAG = 'Y'
AND APPLICATION_COLUMN_NAME = 'SEGMENT4')
AND GCC.SEGMENT1 =FFV1.FLEX_VALUE
AND FFV1.VALUE_CATEGORY ='ENTITY VALUE SET'
AND FFV1.ENABLED_FLAG ='Y'
--AND FFV1.FLEX_VALUE_ID =FT1.FLEX_VALUE_ID
--AND FT1.LANGUAGE ='EL'
AND FT1.LEGAL_ENTITY_IDENTIFIER = GCC.segment1
AND GJL.JE_HEADER_ID =GIR.JE_HEADER_ID(+)
AND GJL.JE_LINE_NUM =GIR.JE_LINE_NUM(+)
AND GIR.GL_SL_LINK_ID =XAL.GL_SL_LINK_ID(+)
AND GIR.GL_SL_LINK_TABLE =XAL.GL_SL_LINK_TABLE(+)
AND XAL.AE_HEADER_ID =XAH.AE_HEADER_ID(+)
AND XAH.APPLICATION_ID =XTE.APPLICATION_ID(+)
AND XAH.ENTITY_ID =XTE.ENTITY_ID(+)
AND XEV.EVENT_ID(+)=XAH.EVENT_ID
AND XAH.APPLICATION_ID = XEV.APPLICATION_ID(+)
AND XAH.application_id = xet.application_id(+)
AND XAH.event_type_code = xet.event_type_code(+)
AND xet.LANGUAGE(+) = USERENV('LANG')
AND xet.entity_code = xect.entity_code(+)
AND xet.application_id = xect.application_id(+)
AND xet.event_class_code = xect.event_class_code(+)
AND xet.language = xect.LANGUAGE(+)
AND XAH.APPLICATION_ID = FAT.APPLICATION_ID(+)
AND FAT.LANGUAGE(+) = USERENV('LANG')
--AND ARTA.CODE_COMBINATION_ID(+)= GCC.CODE_COMBINATION_ID
--AND ARTA.STATUS(+)='A'
AND XAL.PARTY_ID = hca.cust_account_id (+)
AND HCA.party_id = HPC.party_id(+)
AND XAL.PARTY_ID = PS.VENDOR_ID (+)
AND PS.PARTY_ID = HP.PARTY_ID(+)
AND IEBA.BANK_ID(+)= HP.PARTY_ID
AND FLVEVCL.LOOKUP_TYPE(+) ='XXC_EVENT_CLASSES_GREECE'
AND FLVEVCL.LOOKUP_CODE(+)=xect.EVENT_CLASS_CODE
AND FLVEVCL.LANGUAGE(+)='US'
AND FLVCAT.LOOKUP_TYPE(+)='XXC_GREECE_TRASLATIONS'
AND FLVCAT.LOOKUP_CODE(+)=(CASE WHEN GJC.JE_CATEGORY_NAME LIKE '30%'
THEN GJC.USER_JE_CATEGORY_NAME
ELSE GJC.JE_CATEGORY_NAME
END )
AND FLVCAT.LANGUAGE(+)='US'
--AND XTE.source_id_int_1=AP.source_id_int_1(+)
AND GCC.segment4 =BAL.segment4(+)
AND GJL.ledger_id =BAL.ledger_id(+)
/**************PARAMETERS*****************************************************************************************************/
AND GP.START_DATE >= (select distinct start_date from gl_periods where period_set_name = GP.period_set_name and period_name = :P_FROM_PERIOD)
AND GP.end_date <= (select distinct end_date from gl_periods where period_set_name = GP.period_set_name and period_name = :P_TO_PERIOD)
--AND GCC.segment1='3241'
--aND (:P_ACCOUNTS IS NULL OR GCC.segment4 IN (:P_ACCOUNTS))
and (GCC.segment4 IN (:P_ACCOUNTS) OR COALESCE (:P_ACCOUNTS, null) is null)
AND (:P_ENTITY IS NULL OR GCC.segment1 = :P_ENTITY)
AND (:P_BATCH_ST IS NULL OR GJB.STATUS = :P_BATCH_ST)
)
GROUP BY
Natural_Account_Segment
,ACCOUNT_DECSCRIPTION
,ACC
,GL_DATE
,TRANSACTION_DATE
,ENTITY_DESCRIPTION
,Reporting_Sequence
,period_name
,TRANSACTION_NUMBER
,LEDGER_NAME
,ENTERED_CUR
,Transaction_Type
,Journal_Description
,CURRENCY
,
CASE
WHEN NVL(DEBIT, 0) <> 0 THEN 'DEBIT'
WHEN NVL(CREDIT, 0) <> 0 THEN 'CREDIT'
END
,HEADER_ID
,RUN_DATE
,BEG_BAL_DR
,BEG_BAL_CR
,BEG_BAL_TOTAL
HAVING SUM(DEBIT) + SUM(CREDIT) <> 0
order by
GL_DATEThe data-warehouse model — one fact surrounded by conformed dimensions (what you slice by) and measures (what you aggregate), expressed as dbt so it migrates with you. Grain: one row per source transaction.
| Element | Type | Definition |
|---|---|---|
| GL_JE_HEADERS | dimension | dimension |
| GL_CODE_COMBINATIONS | dimension | dimension |
| GL_BALANCES | dimension | dimension |
| GL_LEDGERS | dimension | dimension |
| Debit | measure | measure |
| Credit | measure | measure |
| Running Balance | measure | measure |
Every source object behind this report. Each linked table has its own page with full column descriptions, drawn from the Oracle BICC lineage and articulated for practitioners.
| Table | Reporting columns | Subject areas |
|---|---|---|
| GL_JE_LINES | 26 | 2 |
| GL_JE_HEADERS | 34 | 2 |
| GL_CODE_COMBINATIONS | 7 | 61 |
| GL_BALANCES | Setup / configuration table — joined for reference, not exposed for analytics | |
| GL_LEDGERS | 10 | 104 |