2013-02-26 69 views
0

我有一個表,其中有信用卡和借方帳戶的列作爲期間'1-12'的行,並且還應包含每個期間的期初餘額。在SQL Server中複製SQL行

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   

但在這裏我的問題是,我可以複製或每行中創建12行與期初餘額帳戶1001和1002?

+0

要插入一個空白行?我不知道我明白了這個問題 – 2013-02-26 03:21:48

+0

在上面的表中,我想動態地創建一個帳戶ID爲1001(1001 2 0 0 100和1001 3 0 0 100等等)說,謝謝 – Dash600028 2013-02-26 03:27:23

回答

0

這是一種方法。它使用加入數字列表來獲取期間和賬戶的所有組合。然後使用相關子查詢選擇餘額的最新值。

該版本使用MySQL語法。相關子查詢可以使用select top 1where 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 
+0

仍然我可以得到只有一行即使左外連接應該返回所有12行?我做錯了什麼? – Dash600028 2013-02-26 04:14:53

+0

認爲這裏的問題是它創建了12行,但在帳戶列中分配了「NULL」,但我希望該帳戶也被複制。 – Dash600028 2013-02-26 04:27:31