lỗi máy chủ excel sql: Tên đối tượng không hợp lệ


2

Tôi truy cập một thủ tục được lưu trữ trên cơ sở dữ liệu Microsoft SQL Server 2005 trong excel bằng cách sử dụng

Select * 
from  [dbo].[fn_ph_by15minbyQueue] ('2013-09-01','2013-09-30','LocationCode')

trong kết nối dữ liệu, hoạt động tốt.
Tôi cần một cột bổ sung, vì vậy tôi đã thay đổi tuyên bố thành

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')

hoạt động chính xác trong SQL Server, nhưng khi tôi nhập mã đó vào Văn bản lệnh, báo cáo Excel:

Tên đối tượng không hợp lệ 'dbo.fn_ph_by15minbyQueue'

Tôi đang làm gì sai?

Thông tin
nhập mô tả hình ảnh ở đây
kết nối: Chuỗi kết nối:

Nhà cung cấp = SQLOLEDB.1; Bảo mật tích hợp = SSPI; Thông tin bảo mật liên tục = True; Danh mục ban đầu = Doanh nhân; Nguồn dữ liệu = qadbs4784; Quy trình sử dụng để chuẩn bị = 1; Tự động dịch = Đúng; Kích thước gói = 4096; ID máy trạm = XXXX; Sử dụng Mã hóa dữ liệu = Sai; Gắn thẻ với đối chiếu cột khi có thể = Sai


Bạn có thực sự cần phải đổi tên cột không? nếu không, chỉ cần sử dụng select * như bạn đã từng. còn khi bạn chỉnh sửa chức năng của mình, bạn có đặt 'không tính vào' không? nếu vậy, loại bỏ nó. datapigtechnology.com/blog/index.php/
Thomas Thomas

@FrankThomas, tôi có thể đặt số đếm từ kết nối dữ liệu excel không? Việc đặt tên cột chỉ để dễ đọc, nhưng việc xóa nó không ảnh hưởng đến phản hồi từ excel
SeanC

không, một phần của tập lệnh chức năng / thủ tục. vì bạn đã thêm một cột vào đầu ra, bạn sẽ phải chỉnh sửa hàm.
Frank Thomas

chức năng hoạt động chính xác trong SQL Server, nhưng nếu tôi đặt nó vào kết nối dữ liệu excel, tôi sẽ gặp lỗi. Thao tác thực sự đang chiếm một trường thời gian và làm tròn đến nửa giờ gần nhất
SeanC

Vâng tôi biết. có 'không tính vào' không có tác động tiêu cực đến cuối máy chủ, nhưng nó ngăn excel xử lý kết quả. Ngoài ra, chúng tôi có thể bị treo về thuật ngữ, nhưng một kết nối và một lệnh là hai điều khác nhau và bạn không thể đặt một lệnh trong một kết nối. một kết nối cho biết 'kết nối với máy chủ x bằng cơ sở dữ liệu y, đây là thông tin đăng nhập của tôi' trong khi một lệnh có nội dung 'cung cấp cho tôi dữ liệu này và sử dụng kết nối này để thực hiện'. bạn có thể vui lòng đăng chức năng và mô tả cách bạn chỉ định nó trong excel. Hình ảnh đáng giá ngàn lời nói.
Frank Thomas

Câu trả lời:


0

Hãy thử thêm các trích dẫn đơn xung quanh tên trường mới, distance_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'

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.