你能帮我做这个吗?我必须使用内部联接进行查询才能从不同的表中获取数据。
以下是我的查询:
select
a.DocEntry,
a.CardName,
a.Address,
a.Address2,
a.CardCode,
a.TaxDate,
b.Dscription,
b.Quantity,
b.Price,
b.GTotal,
b.WhsCode,
c.WhsName,
d.CompnyName,
d.CompnyAddr,
d.Phone1,
e.U_NAME
from OPOR a
inner join POR1 b on a.DocEntry = b.DocEntry
inner join OWHS c on a.DocEntry = c.WhsCode
inner join OADM d on a.DocEntry = d.CompnyName
inner join OUSR e on a.DocEntry = e.U_NAME
where b.DocEntry = 36但我知道这个错误:
当将nvarchar值'OEC Computers UK‘转换为int数据类型时,Msg 245、级别16、状态1、第1行转换失败。
发布于 2017-03-27 06:13:48
您正在将NVarchar列组合为int值或列。如果该列包含至少一个不能转换的值,则引发您提供的异常。( sql server不能隐式地解析值)
请检查查询的这一部分,它看起来像是在varchar列和整数列上创建了一个连接。
inner join OADM d on a.DocEntry = d.CompnyName
inner join OUSR e on a.DocEntry = e.U_NAME如果有必要(不建议这样做),则必须将int列转换为nvarchar ex:
inner join OUSR e on CAST(a.DocEntry AS NVARCHAR(255)) = e.U_NAME和
如果DocEntry的数据类型为NVarchar,则异常可能由
b.DocEntry = 36所以你必须用它代替它
b.DocEntry = '36'发布于 2017-03-27 03:04:08
什么类型的列"DocEntry“、"WhsCode”、"CompnyName“、"U_NAME"?
有"OEC计算机英国“不能转换为整数。
该列的数据必须是数字,否则您无法比较它。
https://stackoverflow.com/questions/43037270
复制相似问题