Hi,
Yes you need to give name for the top selected Query
Try this hope this will work for you.
SET @Dynamictbl = N'SELECT [Products], [Price], [Finance]
FROM (
SELECT [Products], [Price], [Finance] FROM ' + @Table_Name + ' WHERE [Area] = ''PB''' +
' EXCEPT
SELECT [Products], [Price], [Finance]
FROM ' + @Table_Name2 + ' WHERE [Area] = ''PB''' +
') z' +
' GROUP BY [Products], [Price], [Finance]
ORDER BY [Products] DESC '
here i have added " z" before group by