我的查询从两个表获取数据并将它们连接起来以将输出作为单个输出提供。子查询工作没有任何错误。但是当我运行整个查询时,我收到这样的错误。
Arithmetic overflow error converting varchar to data type numeric.
这是我的查询
SELECT a.REF_NO + ' - '
+ (SELECT DISTINCT ( c.c_name )
FROM C_MASTER c,
A_MASTER a
WHERE a.c_no = c._NO) AS refer
FROM [A_MASTER] a,
[C_MASTER] c
WHERE a.c_no = c._no
ORDER BY a.REF_NO
REF_NO 是数字数据类型。
最佳答案
试试这个:
select CAST(a.REF_NO AS VARCHAR(100))
+' - '
+(select distinct (c.c_name) from C_MASTER c, A_MASTER a
where a.c_no=c._NO) as refer
from [A_MASTER] a, [C_MASTER] c
where a.c_no=c._no
order by a.REF_NO
总的来说,这对我来说看起来像是一个草率的查询,但如果没有更多解释你想要做什么、你希望结果是什么样子以及你的表是什么样子,我就无法改进它。另外,您不使用联接有什么原因吗?
关于sql - 如何解决sql server中的 "Arithmetic overflow error converting varchar to data type numeric"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39444981/