早些时候,结果集显示300.00,当它是如下面其中加法是贝因从两个不同的表colums发生 。小数除法精度
Cast((SELECT Cost FROM Table1 WHERE Id = CD.Id) +
(SELECT RecuritmentCost FROM Table2 WHERE Id = CD.Id)
AS VARCHAR(10))
但我已经得到了一些要求做除法运算的情况下的一个如此之内的情况下 语句我用下面这导致到300.0000000000000
cast((((
SELECT Cost
FROM Table1
WHERE Id = CD.Id
) + (
SELECT RecuritmentCost
FROM Table2
WHERE Id = CD.Id
))/(Select Count(*) from tblEmployee where Id = CD.Id and emptype=2)) AS VARCHAR(18))
在这里,我已经使用VARCHAR( 18),因为它是抛出错误,如果我使用varchar(10)
错误是“算术溢出错误转换数据到数据类型varchar”。
使用VARCHAR(18),除去这个错误,反而会导致开机有显示300.0000000000000
的哪些操作正在发生的colums是类型
Cost(decimal(18,2),null)
RecuritmentCost(decimal(18,2), null)
我觉得我没有转换的事情正确的,但实际上我需要的结果是在一个字符串,所以我用 演员为Varchar(18)
。我们可以解决这个问题,如果有任何操作发生在 这两列,它应该在两位小数返回结果和字符串格式那太。