Опитайте това вместо това накрая:
exec (@query)
Ако нямате скобите, SQL Server приема, че стойността на променливата е име на съхранена процедура.
ИЛИ
EXECUTE sp_executesql @query
И не би трябвало да е заради FULL JOIN.
Но се надявам, че вече сте създали временните таблици:#TrafficFinal, #TrafficFinal2, #TrafficFinal3 преди това.
Моля, имайте предвид, че има съображения за производителност между използването на EXEC и sp_executesql. Тъй като sp_executesql използва принудително кеширане на изрази като sp.
Повече подробности тук
.
От друга страна, има ли причина да използвате динамичен sql за този случай, когато можете да използвате заявката такава, каквато е, като се има предвид, че не правите никакви манипулации на заявката и я изпълнявате така, както е?