我有专栏AccountNo
(varchar(50)
)。当我尝试使用AccountNo
作为过滤器搜索数据时,我会收到错误信息,如下所示
我的dataTable结构如下:
我的代码给了我错误
SELECT
Date, particular,
flag_voucherType +' '+ CONVERT(VARCHAR,C.billNo) AS [VoucherNo.],
Debit, Credit, Narration
FROM
((SELECT
Particular, flag_voucherType,accountNo,companyId
FROM
tblInsertParticularRecord
WHERE
Credit = 0
AND flag = CONVERT(VARCHAR(50), @accountNum)
AND companyId = @companyId) AS A
INNER JOIN
(SELECT
CONVERT(Decimal,0) AS Debit, Debit AS Credit, accountNo,companyId, billNo
FROM tblInsertParticularRecord
WHERE
flag1 = 0
AND flag = CONVERT(VARCHAR(50), @accountNum)
AND companyId = @companyId) AS B ON A.accountNo = B.accountNo AND A.companyId = B.companyId)
INNER JOIN
(SELECT
Date, billNo, companyId, Narration
FROM tblJournalDateNarrationDetails) AS C ON (B.billNo = C.billNo AND B.CompanyId = C.companyId)
答案 0 :(得分:0)
您是否在乎阅读错误?你猛拉了一小段字符串,但是 - 猜猜是什么 - 从他的东西你没有标出它已经很清楚字符串不是int。 " -1-00-1"最后不是你可以转换成字符串的东西。回到有要求的绘图板。
EIther你的帐户是一个编码字符串(" - "混入),在这种情况下你需要一些严肃的字符串操作来删除多余的符号才能调用转换 - 或 - 好 - 某人真的没有费心去检查账号是否完全是字符串。你不是在转换函数中抛出那种类型的字符串,并期望它神奇地工作。
最有可能的数字是代码 - 具有商业意义的东西,但程序是一系列字符 - 不,你甚至不应该尝试将它转换为数字,你的错误。将它们存储为字符串。