2

Я обращаюсь к хранимой процедуре в базе данных Microsoft SQL Server 2005 в Excel, используя

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; Постоянная информация о безопасности = Истина; Исходный каталог = BusinessUsers; Источник данных = qadbs4784; Использовать процедуру для Prepare = 1; Автоперевод = Истина; Размер пакета = 4096; Идентификатор рабочей станции = XXXX; Использовать Шифрование для данных = False; тег с сопоставлением столбцов, когда это возможно = False

1 ответ1

0

Попробуйте добавить одинарные кавычки вокруг нового имени поля, 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'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .