Essayez plutôt ceci à la fin :
exec (@query)
Si vous n'avez pas les crochets, SQL Server suppose que la valeur de la variable est un nom de procédure stockée.
OU
EXECUTE sp_executesql @query
Et cela ne devrait pas être à cause de FULL JOIN.
Mais j'espère que vous avez déjà créé les tables temporaires :#TrafficFinal, #TrafficFinal2, #TrafficFinal3 avant cela.
Veuillez noter qu'il existe des considérations de performances entre l'utilisation d'EXEC et de sp_executesql. Parce que sp_executesql utilise la mise en cache forcée des instructions comme un sp.
Plus de détails ici
.
Sur une autre note, y a-t-il une raison pour laquelle vous utilisez SQL dynamique dans ce cas, alors que vous pouvez utiliser la requête telle quelle, étant donné que vous ne faites aucune manipulation de requête et que vous l'exécutez telle quelle ?