0

我有一个问题,当我运行以下查询时,我得到“PercentageDifference”为 99.253731343283500,我真正想要显示的是 99.25,但没有任何摆弄似乎使它降低或导致错误:

select PlannedMonthName
     , CountOfPlannedVisits
     , CountOfPlannedVisitsClosed
     , CONVERT( DECIMAL(12,2), nullif(CountOfPlannedVisitsClosed, 0) ) 
       / CONVERT( DECIMAL(12,2), nullif(CountOfPlannedVisits, 0) )
       * 100 AS PercentageDifference
4

2 回答 2

1

您可以使用round如下功能:

select PlannedMonthName
     , CountOfPlannedVisits
     , CountOfPlannedVisitsClosed
     , round( ( CONVERT( DECIMAL(12,2), nullif(CountOfPlannedVisitsClosed, 0) ) 
                / CONVERT( DECIMAL(12,2), nullif(CountOfPlannedVisits, 0) )
                * 100 
               ), 2) AS PercentageDifference

TRUNCATE(X,D)也可以使用:

它返回数字 X,截断为 D 位小数。如果 D 为 0,则结​​果没有小数点或小数部分。D 可以为负数,以使值 X 的小数点左侧的 D 位变为零。

于 2013-08-22T17:22:55.823 回答
0

看看FORMAT功能。它将数字转换为小数点后具有固定位数的字符串:http: //dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_format

于 2013-08-22T17:22:42.817 回答