2016-04-29 122 views
0

因此我需要將此SELECT語句導出到Excel文件(可以對我的桌面說),但我需要在查詢內完成,因此每次都會彈出一個新文件(覆蓋它)腳本從頭到尾運行。 SSIS不是一種選擇,也不是標準的出口。請參閱下面的SELECT語句。將SELECT語句導出到Excel中的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並調用SQL中的excel驅動程序。 –

回答

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

創建Excel數據源,並將該值,

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顯示高級選項,1; RECONFIGURE; sp_configure'Ad Hoc Distributed Queries',1; RECONFIGURE; GO –