Spróbuj zamiast tego na końcu:
exec (@query)
Jeśli nie masz nawiasów, SQL Server przyjmuje, że wartość zmiennej jest nazwą procedury składowanej.
LUB
EXECUTE sp_executesql @query
I nie powinno tak być z powodu FULL JOIN.
Ale mam nadzieję, że już wcześniej utworzyłeś tabele tymczasowe:#TrafficFinal, #TrafficFinal2, #TrafficFinal3.
Należy pamiętać, że istnieją kwestie dotyczące wydajności między używaniem EXEC i sp_executesql. Ponieważ sp_executesql używa wymuszonego buforowania instrukcji jak sp.
Więcej szczegółów tutaj
.
Z drugiej strony, czy istnieje powód, dla którego używasz dynamicznego sql w tym przypadku, kiedy możesz użyć zapytania w takim stanie, w jakim jest, biorąc pod uwagę, że nie wykonujesz żadnych manipulacji zapytaniami i nie wykonujesz go tak, jak jest?