0

我有一个表,其中有贷方和借方账户的列作为周期“1-12”的行,还有一个应该进入每个周期的期初余额。

桌子

Account  |Period   |Credit |Debits    |Opening Balance
1000       1          100     0           50          
1000       2           0      100         50          
.          .           .      .            .          
.          .           .      .            .          
1001       1          50      0           100         
1002       1          40      0           100         

但我的问题是我可以在账户 1001 和 1002 的每一行中复制或创建 12 行的期初余额吗?

4

1 回答 1

0

这是一种方法。它使用与数字列表的连接来获取期间和帐户的所有组合。然后,它使用相关子查询来选择余额的最新值。

此版本使用 MySQL 语法。相关的子查询可能使用select top 1orwhere rownum = 1或其他东西,具体取决于数据库:

select t.account, n.n, coalesce(t.credit, 0) as credit,
       coalesce(t.debit, 0) as debit,
       (select balance
        from t t2
        where t2.account = t.account and
              t2.period <= t.period
        order by period desc
        limit 1
       ) as balance
from (select 1 as n union all select 2 union all select 3 union all select 4 union all
      select 5 union all select 6 union all select 7 union all select 8 union all
      select 9 union all select 10 union all select 11 union all select 12
     ) n left outer join
     t
     on t.period = n.n
于 2013-02-26T03:27:21.633 回答