假设我们有如下日记帐分录表
create table jour_entries
(jseq number,
j_date date,
Eseq number,
account_no varchar2(32),
debit number,
credit number,
note varchar2(256) );
如何在 SQL 中为试算平衡构建最佳性能报告?报告栏是
account_number:是帐号。
debit_within_month:是与 account_number 相关的所有借方的总和,从给定月份的 1 日到该月月底(如果给定日期在当前月份,则到当前日期)
credit_within_month:是与 account_number 相关的所有信用的总和,从给定月份的 1 日到该月月底(如果给定日期是当前月份,则到当前日期)
debit_till_this_day:是给定日期一年内与 account_number 相关的所有借方的累计总和(从给定日期的 1 月 1 日开始到当天)。
credit_till_this_day:是给定日期一年内与 account_number 相关的所有信用的累计总和(从给定日期的 1 月 1 日开始到当天)。
我试过这个选择:
select account_number
, debit_within_month
, credit_within_month
, debit_till_this_day
, credit_till_this_day
from jour_entries j,
(select account_number, sum(debit) debit_within_month,
sum(credit) credit_within_month
from jour_entries
where j_date between trunc(given_date, 'month') and given_date
group by account_number
) j1,
(select account_number, sum(debit) debit_till_this_day,
sum(credit) credit_till_this_day
from jour_entries
where j_date between trunc(given_date, 'year') and given_date
group by account_number
) j2
wherer j.account_number = j1.account_number
and j.account_number = j2.account_number
但我正在寻找其他解决方案(也许通过使用分析函数)以获得最佳性能。