'Getting an error when executing string query "An object or column name is missing or empty"

My SQL Query working fine with "EXEC(Query)" I added "SELECT * INTO #TempData" code before "EXEC(Query)" to insert all the records into a single table instead of multiple separate table records. but getting that error. I even added Aliases but still getting that error. Please suggest. Thanks!

With Temp AS 
   (SELECT companyID,DBName, ROW_NUMBER()over(order by dbname) as [Rownumber]
from CentralHub.dbo.Company where companyID in (16,66,101,196,94,210,215,26,37,194,179))
SELECT * INTO #temp FROM Temp
Declare @Count INT = 1;
Declare @Query Varchar(MAX);
Declare @Dbname Varchar(MAX);
Declare @ID INT;
WHILE(@Count <= (SELECT count(companyID) from #temp))
BEGIN
   SET @Dbname = (SELECT dbname from #temp where Rownumber = @Count);
   SET @ID =  (SELECT companyID from #temp where Rownumber = @Count);
   SET @Query = '
       USE [Db]
       IF (EXISTS (SELECT * 
                FROM INFORMATION_SCHEMA.TABLES 
                WHERE TABLE_SCHEMA = ''dbo'' 
                AND  TABLE_NAME = ''RQSalesFlatten''))
           BEGIN
           IF(EXISTS(SELECT top 1 1 FROM RQSalesFlatten ))
               BEGIN
               SELECT [ID] AS [CompanyID],''[Db]'' AS [DbName], max(rqDate) AS [LastSalesDate] FROM RQSalesFlatten
               END 
               ELSE
               SELECT [ID] AS [CompanyID],''[Db]'' AS [DbName], max(invoiceDate) AS [LastSalesDate]  FROM Sales_Flatten            
           END
           ELSE
           BEGIN
               SELECT [ID]AS [CompanyID],''[Db]'' AS [DbName], max(invoiceDate)AS [LastSalesDate]  FROM Sales_Flatten;
           END
           ';
   SET @Query = Replace(@Query,'[Db]',@Dbname);
   SET @Query = Replace(@Query,'[ID]',@ID);
    SELECT * INTO #TempData EXEC(@Query);
    SET @Count = @Count+1;
END


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source