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

Liên hệ QC

LEHOC

Thành viên chính thức
Tham gia
11/1/17
Bài viết
89
Được thích
0
Xin chào anh/chị, các tiền bối!
Em có thủ thục sau trên SQL:
PHP:
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
 
Web KT
Back
Top Bottom