Probeer dit in plaats daarvan op het einde:
exec (@query)
Als u de haakjes niet hebt, gaat SQL Server ervan uit dat de waarde van de variabele een opgeslagen procedurenaam is.
OF
EXECUTE sp_executesql @query
En het zou niet moeten komen door FULL JOIN.
Maar ik hoop dat je hiervoor al de tijdelijke tabellen hebt gemaakt:#TrafficFinal, #TrafficFinal2, #TrafficFinal3.
Houd er rekening mee dat er prestatieoverwegingen zijn tussen het gebruik van EXEC en sp_executesql. Omdat sp_executesql geforceerde instructiecaching gebruikt als een sp.
Meer details hier
.
Aan de andere kant, is er een reden waarom u dynamische sql voor dit geval gebruikt, wanneer u de query kunt gebruiken zoals deze is, aangezien u geen querymanipulaties uitvoert en het uitvoert zoals het is?