2017-06-27 3 views
0

Ich habe drei Tabellen, aus denen ich eine einzelne Tabelle erstellen muss. Tabelle 1 und Tabelle 2 haben Spalten gemeinsam, die col1 ist, die eine ID ist. Wenn Spalte1 von Tabelle 1 gleich Spalte1 von Tabelle 2 ist, müssen wir die Daten für die Ausgabetabelle abrufen und Spalte 9 in jeder Zeile in der Ausgabetabelle hinzufügen.join3 Tabellen mit ungleicher Zeile und Spalten, die nicht übereinstimmen

Tabelle 1

col1 col2 col3 col4 
a12 abc usa dol 
b12 def In inr 
c12 ghi Uk gbp 

Table2

col1 col5 col6 
a12 586 svc 
b12 596 swf 
c12 600 chl 
d12 897 svc 
e12 912 swf 

table3

col7 col8 clo9 
1.1 21/6/17 test1 

Ausgabetabelle

col1 col2 col3 col4 col6 col7 col9 
a12 abc usa dol 586 svc test1 
b12 def In inr 596 swf test1 
c12 ghi Uk gbp 600 chl test1 
+0

Können Sie uns auch teilen, was Sie bisher versucht haben, das Problem zu lösen? –

+0

@shubha dieses Skript in Ihre Abfrage integrieren – mohan111

+0

@Giorgos, versuchte ich innere Join für Tabelle1 und Tabelle 2, aber ich bin nicht in der Lage Tabelle 3 zu verbinden, da es keine gemeinsame Spalte und ungleiche Zeilen hat. Ich versuchte Union, col9 aus Tabelle 3 beizutreten, funktioniert aber nicht. – shubha

Antwort

0

basierend auf Ihrer Tabelle mit Cross APPLY können wir erreichen:

;WITH CTE AS (
select T.col1, col2, col3, col4,TT.col1 As TTcol, col5, col6 from Table1 T 
INNER JOIN Table2 TT 
On T.col1 = TT.col1) 

Select * from CTE 
CROSS APPLY 
     (
     SELECT m.col9 
     FROM Table3 m 

     ) q 
+0

Danke, das hat funktioniert. – shubha

+0

@shubha wenn es hilft, können Sie es upvote – mohan111

Verwandte Themen