DataScope G/L Finanacial Statements

From KeystoneIntranet
Jump to navigation Jump to search

Data Setup

The Keys to

  • Assign all Accounts to meaningful groups. For example:
    • EXPCOGS
    • EXPGA
    • ASTCUR
    • ASTFIX
  • Assign all groups Heading group to top level Groups:
    • INC: Income
    • EXP: Expenses
    • AST: Assets
  • Setup Sequence Numbers for all Groups. For Example
    • AST: 100
    • ASTCUR: 110
    • ASTFIX: 150
    • INCSALES: 410


Query

Income Statement Only:

select g.sequence||' '||g.group_id||' '||g.line_description Group_Name,t.gl_account||'  '||A.Description Account,G.PARENT_GROUP_ID PARGRP,(select sequence from gltacgrp gp where gp.group_id=g.parent_group_id) pgseq,a.gl_group,
t.trx_date,-t.trx_amount trx_amount,t.source_app,description_1, description_2,a.gl_account account,a.description,session_no,trans_no,a.segment_1,a.segment_2,Trx_Date Mo,trx_date yr, trx_date qtr from glttrx t
inner join gltacct a on a.gl_account=t.gl_account  
left outer join gltacgrp g on g.group_id = a.gl_group 
where trx_date between :beg_date and :end_date and trans_type not in ('B','R') and a.account_type='I'  
order by g.sequence


Income Statement and Balance Sheet:

select g.sequence||' '||g.group_id||' '||g.line_description Group_Name,t.gl_account||'  '||A.Description Account_name,t.trx_date yr,t.trx_date mo,t.trx_date,-t.trx_amount trx_amount,t.source_app,session_no,trans_no,description_1, description_2,a.gl_account account,a.description   ,G.PARENT_GROUP_ID PARGRP,(select sequence from gltacgrp gp where gp.group_id=g.parent_group_id) pgseq
,a.segment_1,a.segment_2,A.ACCOUNT_TYPE IB,a.NOTES_1||' '||a.notes_2 "GL Account" from glttrx t
inner join gltacct a on a.gl_account=t.gl_account   
left outer join gltacgrp g on g.group_id = a.gl_group
where (trx_date between :beg_date and :end_date and trans_type not in ('B','R')) and gl_account not between 'Y' AND 'Z'
  union
select g.sequence||' '||g.group_id||' '||g.line_description Group_Name,t.gl_account||'  '||A.Description Account,
cast ('1/1/2000' as date),cast ('1/1/2000' as date),trx_date,-t.trx_amount,t.source_app,session_no,trans_no,description_1, description_2,a.gl_account account,a.description
,G.PARENT_GROUP_ID PARGRP,(select sequence from gltacgrp gp where gp.group_id=g.parent_group_id) pgseq
,a.segment_1,a.segment_2,A.ACCOUNT_TYPE,NOTES_1||' '||notes_2 from glttrx t
inner join gltacct a on a.gl_account=t.gl_account   
left outer join gltacgrp g on g.group_id = a.gl_group
where (trx_date < :beg_date and trans_type not in ('B') and a.account_type='B')



Income Statement with separate drilldown query:

Main Query

select 
 gp.sequence pgseq,
 G.PARENT_GROUP_ID PARGRP,
 g.sequence, g.group_id, g.line_description,
 t.gl_account, A.Description,
 t.trx_date,
 t.Trx_Date Mo,t.trx_date yr, t.trx_date qtr,
 sum(-t.trx_amount) trx_amount,
 sum(-t.trx_amount) pct_comp
from glttrx t
inner join gltacct a on a.gl_account=t.gl_account  
left outer join gltacgrp g on g.group_id = a.gl_group 
left outer join gltacgrp gp on gp.group_id = g.parent_group_id
where (t.trx_date between :beg_date and :end_date) and 
 (t.trans_type not in ('B','R')) and
 (a.account_type='I') and
 (t.gl_account not between 'Y' AND 'Z')
group by gp.sequence, g.parent_group_id, g.sequence, g.group_id, g.line_description,
 t.gl_account, a.description, t.trx_date



Drilldown Query

select
 a.gl_group,
 t.trx_date, t.trx_amount, t.source_app,
 t.description_1, t.description_2,
 t.gl_account, a.description,
 t.session_no, t.trans_no,
 a.segment_1, a.segment_2
from glttrx t
inner join gltacct a on a.gl_account=t.gl_account  
left outer join gltacgrp g on g.group_id = a.gl_group 
left outer join gltacgrp gp on gp.group_id = g.parent_group_id
where (t.trx_date between :beg_date and :end_date) and 
 (t.trans_type not in ('B','R')) and
 (a.account_type='I') and
 (t.gl_account not between 'Y' AND 'Z') and
[WHERE pgseq=gp.sequence]
[WHERE pargrp=g.parent_group_id]
[WHERE sequence=g.sequence]
[WHERE group_id=g.group_id]
[WHERE line_description=g.line_description]
[WHERE gl_account=t.gl_account]
[WHERE description=a.description]
[WHERE yr=extract(year from t.trx_date)]
[WHERE mo=extract(month from t.trx_date)]