2017-09-17 107 views
-1

我遇到了這個問題,經過周圍和周圍我最終陷入了困境。我有一些共同的列兩個表,我想將它們合併爲一個:T-SQL:加入兩張表

enter image description here

我不是在尋找的代碼一定而是爲了對答案的一些指導。

+0

請張貼預期結果,實際結果爲文本,而不是圖像 – TheGameiswar

+0

問題更新 – aeroalpha

+0

'UNION ALL'是一個好的開始。然後你需要聚合來合併行 –

回答

1

您可以通過full join-ing這兩個表以及使用​​3210和case得到您想要的結果如下。

SELECT COALESCE(t1.user1, t2.user1) AS "User", 
     t1.monday, 
     CASE 
     WHEN t2.tuesday = t1.monday THEN NULL 
     ELSE t2.tuesday 
     END as Tuesday 
FROM table1 t1 
     FULL JOIN table2 t2 
       ON t1.user1 = t2.user1 
ORDER BY "user"; 

結果:

User monday Tuesday 
---------------------- 
user1  gym  run 
user1  run  
user2  gym  run 
user3    gym 
user4    gym 
user5  gym  

您可以赫克演示here

+0

這真的有很大的幫助,但有一個問題:當用戶1在星期一和星期二跑步和健身時,星期二的一個練習被CASE刪除。如果案件被刪除,那麼我複製行。 – aeroalpha

+0

@aeroalpha:我處理了所提供的示例數據。如果您正在尋找不同數據集的答案,請添加另一個問題。我們將很樂意提供幫助。謝謝 :-) – zarruq