2017-01-20 140 views
0

我需要幫助查詢的兩個表成爲表多值插入單個表

第一個表,Tbl_Project:

|ID  | Category | Freq_Project| 
|-------|---------- |-------------| 
|12001 | x_GM | 1   | 
|12001 | x_PP | 1   | 
|12001 | x_RI | 1   | 
|12001 | x_SS | 3   | 

第二個表,Tbl_Activity:

|ID  | Category | Freq_Activity| 
|-------|---------- |--------------| 
|12001 | x_GM |4    | 
|12001 | x_PP |3    | 
|12001 | x_SA |2    | 
|12001 | x_RI |2    | 

而且,我想結果看起來像這樣

|ID  | Category | Freq_Activity | Freq_Project| 
|-------|---------- |---------------|-------------| 
|12001 | x_GM | 4   | 1   | 
|12001 | x_PP | 3   | 1   | 
|12001 | x_SA | 2   | **Null** | 
|12001 | x_RI | 2   | 1   | 
|12001 | x_SS | **Null** | 3   | 

我應該怎麼做這個查詢?

+4

結果由簡單的全加入生產。嘗試學習一些基礎知識。 –

+0

全連接只對單列有效。 – Daleman

回答

0

您可以使用下面的代碼,結果插入目標表。

Insert INTO ResultTable(ID,Category,Freq_Activity,Freq_Project,Tbl_Project) 
Select ISNULL(P.ID,A.ID),ISNULL(P.Category,A.Category),A.Freq_Activity,P.Freq_Project,Tbl_Project 
from Tbl_Project P 
FULL OUTER JOIN Tbl_Activity A 
ON P.ID=A.ID 
AND P.Category = A.Category 
+0

是的,終於有效了。 thx的 – Daleman

+0

請upvote答案@ mas-tidar –

0

一個完整的加盟看起來像這樣

SELECT ISNULL(P.ID,A.ID),ISNULL(P.Category,A.Category),P.Freq_Projeckt,A.Freq_activity 
FROM Tbl_Project P 
FULL OUTER JOIN Tbl_Activity A 
ON A.ID=P.ID AND A.Category=P.Category 
+0

關閉。添加兩個coalesce。 – jarlh

+0

是的,終於,它有效。 THX的。 – Daleman

0

使用聯盟:你想

 SELECT distinct ID,Category,max(Freq_Activity)Freq_Activity, 
     max(Freq_Project)Freq_Project from 
     (
     SELECT ID,Category,Freq_Project,null 'Freq_Activity' 
     FROM Tbl_Project TP 
     union 
     SELECT ID,Category,null 'Freq_Project',Freq_Activity 
     FROM Tbl_Activity TP 
     )a 
     group by ID,Category