2013-11-21 53 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