2016-04-29 3 views
0

Так что мне нужно экспортировать эту инструкцию SELECT в файл excel (скажем, на мой рабочий стол), но мне нужно, чтобы это выполнялось в запросе, чтобы каждый раз выбивать новый файл (перезаписывает это) сценарий запускается от начала до конца. SSIS не является вариантом и не является стандартным экспортом. См. Инструкцию SELECT ниже.Экспортировать инструкцию SELECT в Excel в запросе

SELECT 
    Sub_Company, 
    GL_Account, 
    CAST(SUM(Debits) AS DECIMAL(18,2)) AS Debits, 
    CAST(SUM(Credits) AS DECIMAL(18,2)) AS Credits, 
    CAST(SUM([P&L_Impact]) AS DECIMAL(18,2)) AS [P&L_Impact], 
    COUNT(*) AS Record_Count 
FROM 
(
    SELECT * 
    FROM [FL_SQL_Training].[dbo].[Combined_GL] 
    WHERE 
     Company = 'US' AND 
     GL_Source = 'Consolidation' 
) A 
WHERE 
    GL_Journal_Header_Description LIKE '%UK%' OR 
    GL_Journal_Header_Description LIKE '%CAD%' OR 
    GL_Journal_Header_Description LIKE '%MEX%' OR 
    GL_Journal_Header_Description LIKE '%Hon%' 
GROUP BY 
    Sub_Company, 
    GL_Account 

Спасибо,

+0

Что именно представляет собой "стандартный экспорт" что не допускается? Вы не можете на самом деле делать «внутри» запроса. –

+0

Такие вещи, как мастер экспорта, копирование/вставка и т. Д. В SQL Server нет команды экспорта? Я думал, что есть способ использовать OUTPUT и вызывать драйверы excel в SQL. –

ответ

0
SELECT 
    Sub_Company, 
    GL_Account, 
    CAST(SUM(Debits) AS DECIMAL(18,2)) AS Debits, 
    CAST(SUM(Credits) AS DECIMAL(18,2)) AS Credits, 
    CAST(SUM([P&L_Impact]) AS DECIMAL(18,2)) AS [P&L_Impact], 
    COUNT(*) AS Record_Count 
    INTO OUTFILE '/tmp/accounts.csv' 
    FIELDS TERMINATED BY ',' 
    ENCLOSED BY '"' 
    LINES TERMINATED BY '\n'; 
FROM 
(
    SELECT * 
    FROM [FL_SQL_Training].[dbo].[Combined_GL] 
    WHERE 
     Company = 'US' AND 
     GL_Source = 'Consolidation' 
) A 
WHERE 
    GL_Journal_Header_Description LIKE '%UK%' OR 
    GL_Journal_Header_Description LIKE '%CAD%' OR 
    GL_Journal_Header_Description LIKE '%MEX%' OR 
    GL_Journal_Header_Description LIKE '%Hon%' 
GROUP BY 
    Sub_Company, 
    GL_Account 
+0

В строке псевдонима таблицы A есть ошибка. Не знаете, где еще это поставить. –

+0

Не могли бы вы скопировать/вставить ошибку? –

0

Создать источник данных первенствовать и вставить значения,

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=D:\testing.xls;', 
'SELECT * FROM [SheetName$]') select * from SQLServerTable 

Дополнительная информация доступны здесь http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49926

+0

Это, конечно, для SQL Server ... –

+0

Устранило ошибку: поставщик OLE DB «Microsoft.Jet.OLEDB.4.0» не может использоваться для распределенных запросов, поскольку поставщик настроен для работы в однопоточном режиме квартиры. –

+0

Вы должны включить openrowset, так как он отключен из соображений безопасности: sp_configure 'show advanced options', 1; RECONFIGURE; sp_configure «Специальные распределенные запросы», 1; RECONFIGURE; GO –

Смежные вопросы