Поскольку вы избегаете промежуточную временную таблицу, похоже, вам нужен способ подключения данных Excel непосредственно к данным базы данных. Я немного покопался, и это выглядит многообещающе:
USE ImportFromExcel;
GO
SELECT * INTO Data_dq
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=C:\Temp\Data.xlsx', [Sheet1$]);
GO
Руководство
Может быть, вы можете приспособить это к вашей ситуации, что-то вроде:
SELECT P.REFERENCENUMBER, PED.VALUE, PED.DATEFROM, PED.DATETO, PDD.DEDUCTIONDATACODE
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0; Database=C:\Temp\Data.xlsx', [Sheet1$]) S
INNER JOIN PEOPLE P ON S.[EEnum] = P.REFERENCENUMBER
INNER JOIN DEDUCTIONDETAILS PDD ON S.DEDUCTIONCODE = PDD.DEDUCTIONDATACODE
INNER JOIN EMPLOYEEDEDUCTIONS PED ON PDD.DEDUCTIONDETAILS_ID = PED.DEDUCTION
AND P.PEOPLE_ID = PED.PEOPLE_ID
Отказ от ответственности: я не пробовал эту функцию, поэтому я не уверен, работает ли она / как. Но это стоит посмотреть.