| « | ÁùÔÂ 2008 | » | ||||
|---|---|---|---|---|---|---|
| Ò» | ¶þ | Èý | ËÄ | Îå | Áù | ÈÕ |
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | ||||||
(ǰÇé¼ò½é:GLÄ£¿éÖÐgl_je_lines±íÖÐÿһÌõjournal_line¶¼»áÓÐaccounted_drÓëaccounted_crÁ½¸öÀ¸Î»,±íʾ¸ÃÌõline·¢ÉúµÄ½è·½½ð¶îÓë´û·½½ð¶î; ÔÚgl_balances±íÖÐÿһÌõ¼Ç¼¶¼»á´æ´¢Ò»¸öaccountÔÚijһÀúÊ·»á¼ÆÆÚ¼äµÄÆÚ³õ½è·½ÀúÊ··¢Éú×ܶîbegin_balance_dr,
ÆÚ³õ´û·½ÀúÊ··¢Éú×ܶîbegin_balance_cr.)
×î½üÔÚtuningÒ»ÕÅTrial Balance by DateµÄ±¨±í.ÐèÇóÊÇÕâÑùµÄ:
Óû§ÊäÈëÁ½¸öÈÕÆÚstart_date,
end_date, ±¨±íÕÒ³öij¸öSOBÏÂÔÚÕâ¶Îʱ¼äÄÚËùÓÐaccountµÄÆðʼÓà¶îbeginning_balance, ½è·½·¢Éú¶îdr_amount, ´û·½·¢Éú¶îcr_amount, ×Ü·¢Éú¶î(½è-´û)net_change,
½áÄ©Óà¶îending_balance.
ÔÀ´±¨±íÊÇÕâÑù¼ÆËãµÄ(ºìɫΪ¼ÆËã½á¹ûÀ¸Î»).
1) Ê×ÏÈ,¶Ôÿһ¸öaccount,µ÷ÓÃÒ»¸öº¯Êý¼ÆËã³östart_dateµÄbeginning_balance.
¼ÆËã·½·¨:
ÕÒ³östart_dateËùÔÚµÄperiod_name,¸ù¾Ýperiod_name´Ógl_balances±íÖÐÕÒ³öÕâ¸öaccountµÄbegin_balance_dr, begin_balance_cr.¶þÕßÏà¼õ,µÃ³ö¸ÃaccountÔÚ¸ÃperiodµÄÆÚ³õÓà¶î.period_beginning_balance
È»ºóµ½gl_je_lines±íÖÐ,ÕÒµ½Õâ¸öaccount´Ó¸ÃÆÚ¼äµÚÒ»Ììµ½start_date-1Ëù·¢ÉúµÄËùÓнè´û¶î.sum(accounted_dr)
=> period_bydate_dr,
sum(accounted_cr) => period_bydate_cr.¶þÕßÏà¼õ,µÃ³ö¸ÃaccountÔÚ¸ÃÆÚ¼äÄÚʵ¼Ê·¢Éú¶î:period_net_change.
×îºó, period_beginning_balance + period_net_change, µÃ³ö¸ÃÌìµÄbeginning_balance.
2)
´Ógl_je_lines±íÖÐ,sum´Óstart_dateµ½end_date¸Ãaccount·¢ÉúµÄËùÓнè´û¶î.
sum(accounted_dr) => dr_amount ,sum(accounted_cr) => cr_amount
dr_mount ¨C cr_mount => net_change.
3)
Beginning_balance
+ net_change = ending_balance
ÒòΪÐèÒª¶Ôgl_je_linesÕâÒ»¿Ö²ÀµÄ±í×ösum¶¯×÷,ËùÒÔËæ×ÅÊäÈëstart_dateÓëend_dateÖ®¼äʱ¼ä¶ÎµÄ¼Ó´ó,ÕâÕű¨±íµÄ¿Ö²ÀϵÊýÖ¸ÊýÉÏÉý.
ÔÚ¶Ô±¨±íµÄSQLÕÛÌÚÁËÊýÌìÒÔºó,ͻȻÏëµ½Ò»¸öÎÊÌâ,¾ÍÊÇÔÚGLÄ£¿éÖÐ,¶ÔÓÚËùÓеÄÀúÊ·»á¼ÆÆÚ¼ä, gl_je_linesÖÐÔÚ¸ÃÆÚ¼ä·¢ÉúµÄ½è´û¶î,ÒÔ¼°ÀúÊ··¢ÉúµÄ×ܵĽè´û¶î,¶¼»ásumµ½gl_balancesÕâÕűíÀïÃæ.,Ò²¾ÍÊÇ˵, ÎÒÃÇÉÏÃæËù×öµÄsum¶¯×÷,ÆäʵºÜ´ó²¿·ÖGLÔçÒѾΪÎÒÃÇ×öºÃÁË.
ÀýÈç˵ÎÒÃÇÒªÇó´Ó
°´ÕÕÉÏÃæµÄ˵·¨,¼ÙÈô
ÎÒÃǵÄbegin_balanceÒÀÈ»°´ÕÕµÚÒ»ÖÖ·½·¨»ñÈ¡.
dr_amountµÄÈ¡µÃ,ÎÒÃÇ¿ÉÒÔʹÓÃ
cr_amountÒ²¿ÉÒÔÓÃͬÑùµÄ·½·¨È¡µÃ.
¶øÁ½¸öbeginning_drµÄÈ¡µÃ,ÎÒÃÇÔÚ·½·¨Ò»µÄµÚÒ»²½ÆäʵÒѾȡµÃ,Ö»ÊÇËüûÓÐʹÓÃ:
Begin_balance_dr + period_bydate_dr =
beginning_dr
Begin_balance_cr + period_bydate_cr =
beginning_cr
Ò²¾ÍÊÇ˵ÎÒÃÇÀûÓ÷½·¨Ò»µÄµÚÒ»²½·Ö±ðÈ¡µÃstart_dateÓëend_dateµÄbegin_drÓëbegin_cr.
ÀûÓÃÕâ4¸öÊýÖµ¾Í¿ÉÒÔÆ´µÄÎÒÃÇËùÐèÒªµÄËùÓÐÀ¸Î»ÖµÁË.
ÇóµÃend_dateµÄÁ½¸öÊýÖµ×÷Ϊending_dr, ending_cr.
Beginning_balance = beginning_dr ¨C
beginning_cr
Dr_amount = ending_dr ¨C beginning_dr
Cr_amount = ending_cr ¨C beginning_cr
Net_change = dr_amnount ¨C
cr_amount
Ending_balance = ending_dr ¨C
ending_cr
°´ÕÕÕâÖÖ·½·¨,ÎÒÃÇsumµÄ֪ʶ