繁体   English   中英

如何在SQL查询的结果上保留两位小数?

[英]How to make a two decimal places on the result of a sql query?

这是我的代码。

 SELECT SUM(receivables) AS [Trans-January], 
        (SELECT SUM(receivables)
         FROM tbl_customerInfo 
         WHERE invalid = 'valid'
            AND YEAR(currentDate) = '2017'
            AND MONTH(currentDate) = '02'
            AND paid = 1) AS [Coll-January],
      (((SELECT SUM(receivables)
         FROM tbl_customerInfo
         WHERE invalid = 'valid'
            AND YEAR(currentDate) = '2017'
            AND MONTH(currentDate) = '02'
            AND paid = 1) / 
        (SELECT SUM(receivables)
         FROM tbl_customerInfo
         WHERE invalid = 'valid'
            AND YEAR(currentDate) = '2017'
            AND MONTH(currentDate) = '02')) *100) AS [Coll - january]
FROM tbl_customerInfo
WHERE invalid = 'valid'
AND YEAR(currentDate) = '2017'
AND MONTH(currentDate) = '02'

我得到的结果

 <table border = 1> <thead> <th>Trans - January</th> <th>Coll - January</th> <th>January %</th> </thead> <tbody> <tr> <td>598641.25</td> <td>6523.21</td> <td>1.089669313633165</td> </tr> </tbody> </table> 

我如何使一月%列中的结果仅显示4个小数位? (xxxxx.xxxx)

另外,您可以帮助我改善代码吗? 我将从一月到十二月获得所有这三列。 简而言之,共有36列。

有多种方法可以简化此代码-但对于小数位-以下内容使用Format函数来获取4位小数位。 (您的标题说2位小数,但您的注释说4位)。

Declare @currentDate Date
Set @currentDate = '2017-02-25'  --GetDate()

 SELECT 
   SUM(receivables) AS [Trans-January], 

       (SELECT SUM(receivables)
         FROM tbl_customerInfo 
         WHERE invalid = 'valid'
            AND YEAR(@currentDate) = '2017'
            AND MONTH(@currentDate) = '02'
            AND paid = 1) AS [Coll-January],
Format(
      (((SELECT SUM(receivables)
         FROM tbl_customerInfo
         WHERE invalid = 'valid'
            AND YEAR(@currentDate) = '2017'
            AND MONTH(@currentDate) = '02'
            AND paid = 1) / 
        (SELECT SUM(receivables)
         FROM tbl_customerInfo
         WHERE invalid = 'valid'
            AND YEAR(@currentDate) = '2017'
            AND MONTH(@currentDate) = '02')) *100) 
,'N4')  AS [January]

FROM tbl_customerInfo
WHERE invalid = 'valid'
AND YEAR(@currentDate) = '2017'
AND MONTH(@currentDate) = '02'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM