Извлечение данных с использованием сценариев SQL - PullRequest
0 голосов
/ 14 октября 2019

Я должен извлечь дату из списка сотрудников и предоставить код.

Список сотрудников и код отображаются в базе данных во временную таблицу, S

РезультатыЗатем временная таблица сопоставляется с таблицами ниже для извлечения окончательного результата.

SELECT P.REFERENCENUMBER, PED.VALUE, PED.DATEFROM, PED.DATETO, PDD.DEDUCTIONDATACODE 
FROM [temptable] 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

Мне нужно написать скрипт, который позволит ИЗБЕГАТЬ меня использовать временную таблицу для получения даты.

1 Ответ

0 голосов
/ 14 октября 2019

Поскольку вы избегаете промежуточную временную таблицу, похоже, вам нужен способ подключения данных 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

Отказ от ответственности: я не пробовал эту функцию, поэтому я не уверен, работает ли она / как. Но это стоит посмотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...