我在加入兩個不同表格的兩列時遇到了問題。加入來自兩個不同表格的兩列
方案是:我有一個表A有11列,另一個表B有6列。
在這兩個表中都存在一個列名稱SAMPLE1。但是,來自第一個表A的SAMPLE2和來自第二個表B的ABC具有相同的值,但具有不同的列名。與SAMPLE3和DEF相同。現在我想將這些列加入到一個列(由兩個表中的數據組成)中,其餘列也應該出現在最終表中。
實施例:
表A
SAMPLE1 SAMPLE2 SAMPLE3 .........SAMPLE 11 (Total 11 columns in this table)
US 75.2 US1_US NULL
INDIA 71 I3_INDIA NULL
UK 1851.23 UK1_UK NULL
表B
SAMPLE1 ABC DEF............. XYZ (Total 6 columns in this table)
CHINA 123.2 C1_CHINA 2
JAPAN 1.1 J1_JAPAN 2
GERMANY 10.2314 G1_GERMANY 2
SINGAPORE 100.22 S1_SINGAPORE 2
現在我想看到這樣的輸出:
SomeTable
SAMPLE1 SOMENAME1 SOMENAME2..SAPMLE 11 ABC DEF ..... SOMENAME3
US 75.2 US1_US NULL NULL NULL NULL
INDIA 71 I3_INDIA NULL NULL NULL NULL
UK 1851.23 UK1_UK NULL NULL NULL NULL
CHINA 123.2 C1_CHINA NULL NULL NULL 2
JAPAN 1.1 J1_JAPAN NULL NULL NULL 2
GERMANY 10.2314 G1_GERMANY NULL NULL NULL 2
SINGAPORE 100.22 S1_SINGAPORE NULL NULL NULL 2
簡而言之:
SELECT (SAMPLE1(來自表A)+ SAMPLE1(來自表B))AS SAMPLE1, (SAMPLE2 + ABC)AS SOMENAME1, (樣本3 + DEF)AS SOMENAME2, A.SAMPLE4,A.SAMPLE5,..., B.GHI,B.JKL,... (A.SAMPLE11 + B.XYZ)AS SOMENAME3
我用工會但它不起作用。
select SAMPLE1,SAMPLE2,SAMPLE3,...,SAMPLE 11 from TABLE A
UNION
SELECT SAMPLE1, ABC, DEF, ...., XYZ FROM TABLE B
現在我得到一個錯誤:
Msg 205, Level 16, State 1, Line 1
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
我用聯合,合併,全外連接(所有的建議或以下的答案)
請幫我在寫作代碼。其實,我需要在select語句中使用的代碼。也可以用臨時表或case語句等
感謝, Shashra
COL3但是這隻會從左表中得到所有數據,這意味着我現在不想要的表A.我想要表A和表B中的所有列,但表A和表B中的唯一列(sample1)應合併到一個列中。 – Shahsra 2011-04-18 19:51:09
@Shahsra:這是一個[完整的外連接](http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html),回答編輯 – Andomar 2011-04-18 20:11:18