SQL Server – Joindre une requête

Select No, A, B, C into #temp1 from Table1 Where month = 'Jan' Select No, D, E, F into #temp2 from Table2 Where month = 'Jan' Select No, G, H, I into #temp3 from Table3 Where month = 'Jan' 

Et le nombre de lignes entraîne

 #temp1 = 0 #temp2 = 0 #temp3 = 2 

* notez que le résultat du nombre de lignes varie en fonction du mois sélectionné

Je veux combiner le résultat de trois tables en une qui produit la sortie ci-dessous:

 No | A | B | C | D | E | F | G | H | I ---------------------------------------- 

J'ai essayé :

 Select t1.No, t1.A, t1.B, t1.C, t2.D, t2.E, t2.F, t3.G, t3.H, t3.I From #temp1 t1 Left Join #temp2 t2 on t1.No = t2.No Left Join #temp3 t3 on t1.No = t3.No 

Mais je sais que la requête est fausse car il n'y aura pas de sortie car il n'y a pas de résultat dans la table # temp1

S'il vous plaît aider. Merci

Vous pouvez utiliser Full Outer Join pour votre cas. Essayez comme ça.

 CREATE TABLE #temp1 ( no INT, A VARCHAR(10), B VARCHAR(10), C VARCHAR(10), MONTH VARCHAR(10) ) CREATE TABLE #temp2 ( no INT, D VARCHAR(10), E VARCHAR(10), F VARCHAR(10), MONTH VARCHAR(10) ) CREATE TABLE #temp3 ( no INT, G VARCHAR(10), H VARCHAR(10), I VARCHAR(10), MONTH VARCHAR(10) ) INSERT INTO #temp3 VALUES (1, 'G1', 'H1', 'I1', 'Jan'), (2, 'G2', 'H2', 'I2', 'Jan') SELECT coalesce(t1.No,t2.no,t3.no) as No, t1.A, t1.B, t1.C, t2.D, t2.E, t2.F, t3.G, t3.H, t3.I FROM #temp1 t1 FULL OUTER JOIN #temp2 t2 ON t1.No = t2.No FULL OUTER JOIN #temp3 t3 ON t1.No = t3.No 

Si vous souhaitez afficher tous les résultats, votre requête peut être inférieure, mais si votre objective est différent, veuillez l'expliquer un peu plus.

  Select t1.No, t1.A, t1.B, t1.C, t2.D, t2.E, t2.F, t3.G, t3.H, t3.I From #temp1 t1, #temp2 t2 , #temp3 t3