我使用 Excel 中的 Microsoft SQL Server 2005 数据库访问存储过程
Select *
from [dbo].[fn_ph_by15minbyQueue] ('2013-09-01','2013-09-30','LocationCode')
在数据连接中,它工作正常。
我需要一个额外的列,所以我将语句改为
select *,
(case right([Interval],2)
when '15' then left([interval],len([Interval])-2)+'00'
when '45' then left([interval],len([Interval])-2)+'30'
else [interval]
end) as interval_30
from [dbo].[fn_ph_by15minbyQueue] ('2013-09-01','2013-09-30','LocationCode')
在 SQL Server 中可以正常工作,但是当我将该代码输入到命令文本中时,Excel 报告:
无效的对象名称“dbo.fn_ph_by15minbyQueue”
我究竟做错了什么?
连接信息:
连接字符串:
提供程序 = SQLOLEDB.1;集成安全性 = SSPI;持久安全信息 = True;初始目录 = BusinessUsers;数据源 = qadbs4784;使用准备程序 = 1;自动翻译 = True;数据包大小 = 4096;工作站 ID = XXXX;对数据使用加密 = False;尽可能使用列排序规则进行标记 = False
答案1
尝试在新字段名称 interval_30 周围添加单引号。
(case right([Interval],2) when '15' then left([interval],len([Interval])-2)+'00' when '45' then left([interval],len([Interval])-2)+'30' else [interval] end) as 'interval_30'