早些時候,結果集顯示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)
。我們可以解決這個問題,如果有任何操作發生在 這兩列,它應該在兩位小數返回結果和字符串格式那太。