2015-10-07 86 views
1
date1 tran_1 date2 tran_2 date3 tran_3 ..... date80 tran_80 
may01 24  jun02 32  aug18 56 ..... sep10 44   
Sep01 24  Nov08 32  Jan18 56 ..... Jun18 44 

每2組連續的列現在輸出應該以及如何編寫動態查詢。我已經通過傳遞參數,對上述80個變量寫了一個程序,我有打電話給約40倍的程序,plz幫助我如何聯盟從同一個表

date tran  type 
may01 24  tran_1 
Sep01 24  tran_1 
jun02 32  tran_2 
Nov08 32  tran_2  
aug18 56  tran_3 
Jan18 56  tran_3 
........................ 
........................ 
sep10 44  tran_80 
Jun18 44  tran_80 
+1

查看正常化。 – Strawberry

回答

1

一種方法是隻使用union all

select date, tran_1 as tran, 'tran_1' as type from t union all 
select date, tran_2 as tran, 'tran_2' as type from t union all 
select date, tran_3 as tran, 'tran_3' as type from t union all 
. . . 

我的建議是產生在電子表格中的代碼。只需生成1到80的數字並使用電子表格功能即可。或者,如果您不想輸入所有列名稱,則可以生成動態SQL。

如果性能問題有很多很多數據,還有其他方法。但是,這種類型的查詢通常只運行一次,而更高效的查詢則更難以構建。