我有一個數據樞軸連接的表SQL Server上
TAB1
---------------------------------------------
| ID1 | ID2 | SIGNEDBY | A | B | C |
| 1 | 8 | 'aa' |'John' | 9 | 12/12 |
| 2 | 9 | 'bb' |'Smith' | 0 | 13/12 |
TAB2
-------------------------------------------------------------------
| NAME | ID1 | ID2 | SIGNEDBY | VSTRING | VINT | VDATA | D | E |
| 'C1' | 1 | 8 | 'aa' | NULL | 1 | NULL | 'l'| 5 |
| 'C2' | 1 | 8 | 'aa' | 'sth' | NULL | NULL | 'p'| 4 |
| 'C3' | 1 | 8 | 'aa' | NULL | NULL | 12/1/13 | 'q'| 5 |
| 'C2' | 2 | 9 | 'bb' | 'oth' | NULL | NULL | 'p'| 4 |
| 'C3' | 2 | 9 | 'bb' | NULL | NULL | 1/1/11 | 'q'| 5 |
我需要的,這將產生一個查詢兩個表
TAB3
----------------------------------------------------
| ID1 | ID2 | A | B | C1 | C2 | c3 |
| 1 | 8 | 'John' | 9 | 1 | 'sth' | 12/1/13 |
| 2 | 9 | 'Smith'| 0 | NULL | 'oth' | 1/1/11 |
首先我想在本地創建TAB3,插入數據形成TAB1到TAB3,然後爲每個我叫名字「合併爲表」。它工作正常,但速度太慢(超過4分鐘)。然後我嘗試了一個查詢,如:
Select ID1, ID2, A, (Select VINT from TAB3 where Name - 'C1' and ....) 'C1',
.... from TAB1
這也是工作正常,但仍然太慢。然後我遇到了pivot命令,但是我沒有設法編寫一個工作代碼。是否可以爲這個問題編寫一個快速查詢(理想情況下是一個)?
能否請你解釋一下輸出你想?此外,[SQLFiddle](http://sqlfiddle.com)中的示例將非常棒。 – vidit
TAB1上的哪個字段標識TAB2上的對應字段 - ID1,ID2和/或SIGNEDBY? –
字段ID1,ID2,SIGNEDBY對應於TAB1和TAB2之間 – orwe