2012-07-16 179 views
0

我有一个SQL SUM,我也正在分割,但我想设置精度在第十个位置,例如10.1而不是10.12。你会如何去做这件事?这是我的SQL语句:在SQL SUM语句中设置精度

SELECT DISTINCT PAINT_LINE, SUM(HOURS_REQUIRED/WORKING_DAYS) AS HOURS_REQUIRED, 
    TO_CHAR(WEEK_START, 'YYYY/MM/DD') AS WEEK_START FROM 
DCSI.PAINTYEARLYPAINTHRSPROJECTIONS WHERE USER_ID = :UserID AND WEEK_START>=SYSDATE-7 
    AND WEEK_START<=SYSDATE+63 GROUP BY WEEK_START, PAINT_LINE ORDER BY WEEK_START DESC, PAINT_LINE 

我想HOURS_REQUIRED设置第十精度,但我不知道如何去这一点。

谢谢!

+0

你想在SQL(第一步),或在GridView控件(最后一步)格式化? – 2012-07-16 21:03:08

+0

最终结果将显示在GridView中。这将是GridView数据源中的SelectCommand。 – 2012-07-16 21:03:38

+2

我在问,因为您可以格式化GridView而不更改DataSource中的值(fe ['ToString'或'String.Format'](http://msdn.microsoft.com/zh-cn/library/dwhawy9k。 ASPX))。 – 2012-07-16 21:05:20

回答

2

要做到这一点,最好的办法是将它转换为具有正确精度的数字:

cast(<val> as numeric(8,1)) 

例如。

在你的情况下,这将是:

cast(SUM(HOURS_REQUIRED/WORKING_DAYS) as numeric(8, 1)) AS HOURS_REQUIRED