我需要输出2位数字,如2.39
,但我得到了输出2.3980815347721822541966
。
这是我不明白的问题。
这是我的查询。
SELECT M.Description,A.Target,A.Actual,
CASE
WHEN A.Target > 0 THEN A.Actual / CONVERT(DECIMAL(18,2),A.Target)
ELSE 0
END Achievement
FROM (
SELECT * FROM ProcessData PD
WHERE
ProcessYear = 2015 AND ProcessMonth = 1
AND DepotID = 6 AND ModuleID =1
) A
LEFT OUTER JOIN Measure M
ON M.ID = A.MeasureID
答案 0 :(得分:2)
您需要格式化整个表达式而不仅仅是除数:
所以而不是
THEN A.Actual / CONVERT(DECIMAL(18,2),A.Target)
将其更改为:
THEN CONVERT(DECIMAL(18,2), A.Actual / A.Target)
请注意,我希望2.398可以舍入到2.40(这是我发布的代码会做的) - 你确定要总是向下舍入吗?如果是这样,请查看ROUND函数。
THEN CONVERT(DECIMAL(18,2), ROUND(A.Actual / A.Target, 2, 1)