Prova detta istället till slut:
exec (@query)
Om du inte har parenteserna antar SQL Server att variabelns värde är ett lagrat procedurnamn.
ELLER
EXECUTE sp_executesql @query
Och det borde inte bero på FULL JOIN.
Men jag hoppas att du redan har skapat temptabellerna:#TrafficFinal, #TrafficFinal2, #TrafficFinal3 innan detta.
Observera att det finns prestandaöverväganden mellan att använda EXEC och sp_executesql. Eftersom sp_executesql använder forcerad satscache som en sp.
Mer information här
.
Å andra sidan, finns det en anledning till varför du använder dynamisk sql för det här fallet, när du kan använda frågan som den är, med tanke på att du inte gör några frågemanipulationer och kör den som den är?