数据透视表中的SQL数据导入,数据类型错误

时间:2015-08-05 08:34:55

标签: sql-server excel sql-server-2008 excel-2013

使用Excel 2013 Standard和SQL Server 2008 R2。

我已经使用此连接创建了一个数据透视表:

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中它们显示为Currency字段。我可以将Excel中的列更改为标准值或值,但刷新连接后,列将更改回货币值。

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

我该如何解决这个问题。

解决了货币部分的价值。 它也适用于日期部分,但Excel不会将其视为日期,而是文本。

2 个答案:

答案 0 :(得分:1)

试试这个,我希望你能

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

答案 1 :(得分:0)

现在在您的SQL输出中,您有最后一列Grootboek_Transacti_1 ,,,,将其粘贴到Excel中。它将保持原样。(不预期货币兑换)