数据透视表中的SQL数据导入错误的数据types

使用Excel 2013 Standard和SQL Server 2008 R2。

我用这个连接创build了一个数据透视表:

DRIVER=SQL Server Native Client 10.0;SERVER=sqlserver; UID=xxx;PWD=yyy;APP=Microsoft Office 2013; WSID=CVH2014021;DATABASE=VH_Datawarehouse; SELECT [Klantnummer] ,cast([Faktuurdatum] as datetime) as 'Faktuurdatum' ,[Grootboek_Transactie] ,[Grootboek_BTW] ,[Kostenplaats_Transactie] ,[LitersGetankt] ,[Netto_Euro_bedrag] ,[BTW_Euro_bedrag] FROM [VH_Datawarehouse].[dbo].[ds_Selectie_Aanlevering_Tankgegevens] WHERE (Faktuurdatum >= dateadd(dd,-120,getdate())) and GegevensBron = 'Shell' 

Grootboek_Transactie / Grootboek_BTW / Kostenplaats_Transactie列都是int字段,但在Excel中它们显示为货币字段。 我可以将Excel中的列更改为“标准”或“值”,但在刷新连接后,列将变回货币值。

我将驱动程序名称从SQL Server更改为SQL Server Native Client 10.0,因为这可能会产生影响,但是我的date时间字段Faktuurdatum显示为货币。

我怎样才能解决这个问题。

作为货币部分的值被解决。 它也适用于date部分,但Excel不会将其视为date,而是视为文本。

试试这个,我希望你会这样

 select * , REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( Grootboek_Transactie ,CHAR(9),' ') ,CHAR(13),' ') ,CHAR(10),' ') ,CHAR(32),' ') ,CHAR(34),' ') AS Grootboek_Transacti_1 

现在在你的SQL输出中,你有最后一个Column Grootboek_Transacti_1 ,,,把它粘贴到Excel中。 它会保持原样(没有货币转换)