我有检索与我下面的存储过程的查询准确数据值的问题:SQL语法问题(多选择)
CREATE PROCEDURE usp_InvoiceErrorLog
@RecID int
AS
DECLARE @ErrorString as varchar(1000),
@ErrorCode as int;
Select @ErrorCode = ErrorCode from tbl_AcctRecv_WebRpt Where RecID = @RecID;
IF NOT(@ErrorCode = NULL)
Begin
Select @ErrorString = ErrorDesc from tbl_ErrDesc Where ErrorCode = @ErrorCode
End
Select RecID, VendorNum, VendorName, InvNum, InvTotal, (SELECT CONVERT(VARCHAR(11), InvDate, 106) AS [DD MON YYYY]) As InvDate,
TicketRequestor, ErrorCode, @ErrorString as ErrorDesc
from tbl_AcctRecv_WebRpt Where RecID = @RecID
的ErrorDesc列(在底部最后的SELECT语句)返回NULL值,当它应该返回一个有效的字符串数据。
任何想法?
如果错误代码不为空,ErrorDesc应该总是返回一个值; 你为什么要做SELECT ErrorDesc WHERE RecID = @ RecID?你没有加入ErrorCode – user279521 2010-06-18 15:09:10
@ user279521,在我的第一个例子中,我只是告诉你做一个查询。请参阅我的其他代码,它适用于我。 – JonH 2010-06-18 15:12:39
@ user279521 - 将我的代码复制并粘贴到SSMS中,然后运行查询,然后在stackoverflow中更改具有一堆userXXXXXXX的别名:)难以管理。 – JonH 2010-06-18 15:13:07