Lỗi gọi thủ tục (exec) trên excel không trả về kết quả đầy đủ.

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Xin chào anh/chị, các tiền bối!
Em có thủ thục sau trên SQL:

ALTER PROC [dbo].[Invoices]
    @Ngay_ct1 DATETIME,
    @Ngay_ct2 DATETIME
AS
BEGIN
    DECLARE @InvNo NVARCHAR(40)
    DECLARE @InvTemplateNo NVARCHAR(25)
    DECLARE @InvSeries NVARCHAR(20)
    DECLARE @AccObID NVARCHAR(MAX)
    DECLARE @AccObName NVARCHAR(MAX)
    DECLARE @Buyer NVARCHAR(MAX)
    DECLARE @AccObGrLst NVARCHAR(MAX)

SELECT
        IsInvoiceDeleted,
        DeletedReason,
        InvoiceRefID,
        IsInvoiceReceipted,
        CreatedDate,
        ReceiverNameFull,
        ReceiverEmailFull,
        @InvNo AS  InvNo,
        @InvTemplateNo AS InvTemplateNo,
        @InvSeries AS InvSeries,
        @AccObID AS AccountObjectID,
        @AccObName AS AccountObjectName,
        @Buyer AS Buyer,
        @AccObGrLst AS AccountObjectGroupList
    INTO #Temp FROM dbo.EInvoiceStatus
    UPDATE #Temp
    SET #Temp.InvNo = B.InvNo FROM dbo.SAInvoice B WHERE B.RefID = #Temp.InvoiceRefID
    UPDATE #Temp
    SET #Temp.InvTemplateNo = B.InvTemplateNo FROM dbo.SAInvoice B WHERE B.RefID = #Temp.InvoiceRefID
    UPDATE #Temp
    SET #Temp.InvSeries = B.InvSeries FROM dbo.SAInvoice B WHERE B.RefID = #Temp.InvoiceRefID
    UPDATE #Temp
    SET #Temp.AccountObjectID = B.AccountObjectID FROM dbo.SAInvoice B WHERE B.RefID = #Temp.InvoiceRefID
    UPDATE #Temp
    SET #Temp.AccountObjectName = B.AccountObjectName FROM dbo.SAInvoice B WHERE B.RefID = #Temp.InvoiceRefID
    UPDATE #Temp
    SET #Temp.Buyer = B.Buyer FROM dbo.SAInvoice B WHERE B.RefID = #Temp.InvoiceRefID
    UPDATE #Temp
    SET #Temp.AccountObjectGroupList = C.AccountObjectGroupList FROM dbo.AccountObject C WHERE C.AccountObjectID = #Temp.AccountObjectID

SELECT * FROM #Temp
    WHERE AccountObjectGroupList LIKE '%;/3/7/%' AND (CreatedDate BETWEEN @Ngay_ct1 AND @Ngay_ct2)
    ORDER BY InvSeries DESC, InvTemplateNo DESC
END
GO

Em đã chạy thủ tục trên SQL Server 2014 thì trả về kết quả đầy đủ, tuy nhiên em gọi lại thủ tục trên excel bằng cách tạo kết nối "From Other Sources" => "From Microsoft Query" => Choose Data Sources => Và sau cùng em gọi thủ tuc trên "EXEC Invoices '2020-05-01','2020-06-30'" nhưng bị lỗi không có giá trị (NULL) ở các cột: AccountObjectID, AccountObjectName, Buyer, AccountObjectGroupList.
Cao nhân nào biết cách khắc phục chỉ em với ạ?
Em cảm ơn!

debug 2 tham số DATETIME truyền vào: hình như ở excel (vba) nó khác, trên mssql server nó khác.

Tip google: datatime in vba excel

Hoặc ở vba excel ban send dạng text => lên mssql server bạn convert sang datetime

www.giaiphapexcel.com/diendan/threads/l%E1%BB%97i-g%E1%BB%8Di-th%E1%BB%A7-t%E1%BB%A5c-exec-tr%C3%AAn-excel-kh%C3%B4ng-tr%E1%BA%A3-v%E1%BB%81-k%E1%BA%BFt-qu%E1%BA%A3-%C4%91%E1%BA%A7y-%C4%91%E1%BB%A7.150514/

Ứng dụng AI và Chat GPT trong Quản trị nhân sự
Khóa học SprinGO phù hợp

Ứng dụng AI và Chat GPT trong Quản trị nhân sự

Học xong khóa này, học viên có thể: Hiểu đúng bản chất AI, các nhóm AI phổ biến và cách AI “hoạt động” ở...

Xem khóa học
★★★★★ 5 ★ 1 👤 0 ▥ 0
Quảng cáo

Bạn nên đọc

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm