2013-11-21 54 views
7

此錯誤似乎來自以下代碼塊。這個錯誤的可能原因是什麼?無法調用字符上的方法

不能對char

INSERT INTO #ActiveTerminals 
SELECT DISTINCT a.TerminalId, SerialNumber, a.[LoadTime] [LastSale] 
FROM Terminal INNER JOIN 
(
    SELECT DISTINCT Ticket.TerminalId,max(LoadTime) [LoadTime] FROM 
    Ticket with (NOLOCK) 
    JOIN ProductDenomination with (NOLOCK) ON (ProductDenomination.DenominationId = Ticket.DenominationId) 
    WHERE ProductDenomination.ProductId NOT IN (SELECT * FROM dbo.fn_MVParam(@sExcludedProducts)) AND 
    datediff(day,LoadTime,@dteActiveSalesEndDate) <= @iLastSoldWithinDays 
    GROUP BY TerminalId 

    UNION ALL 

    SELECT DISTINCT VarTicket.TerminalId, max(TransactionDate) [LoadTime] FROM 
    VarTicket with (NOLOCK) 
    WHERE VarTicket.ProductId NOT IN (SELECT * FROM dbo.fn_MVParam(@sExcludedProducts)) AND 
    VarTicket.TerminalId NOT IN (SELECT TerminalId FROM #ActiveTerminals) 
    AND datediff(day,TransactionDate,@dteActiveSalesEndDate) <= @iLastSoldWithinDays 
    GROUP BY TerminalId 
)a ON (Terminal.TerminalId = a.TerminalId.TerminalId) 
ORDER BY a.TerminalId, SerialNumber 
+0

究竟什麼是錯誤? –

+0

@JustinNiessner - 錯誤在標題中,你可以把我們的焦點放在一行上嗎?你能顯示參數的值和聲明嗎?你能顯示你的函數的代碼('fn_MVParam')嗎? –

+0

@JustinNiessner錯誤是「無法調用char上的方法」 – Nation

回答

7

調用方法對於此行:

)a ON (Terminal.TerminalId = a.TerminalId.TerminalId) 

它改成這樣:

)a ON (Terminal.TerminalId = a.TerminalId) 
+0

:| ** faceSlap ** ...我應該擊中六(板球)或棒球,擊中本壘打。 – Nation

+5

@Nation這是一個常見的錯字,很難看。關鍵是知道這個錯誤幾乎總是來自一個額外的('.')某處。 – RBarryYoung

+1

如果它可以幫助任何人...我的錯誤是在添加到選擇的附加列之前放置一段逗號而不是逗號。 – Roger