Sql 如何设置聚合和()结果的位数?

Sql 如何设置聚合和()结果的位数?,sql,oracle,Sql,Oracle,在Oracle中,我试图获得销售总额,其类型为DECIMAL(5,2)。我还希望SUM'd列返回2位小数 查询如下所示: SELECT I.upc, category, sellPrice, total, sum(TOTAL*sellPrice)"TOTALVALUE" ... GROUP BY GROUPING SETS ( (I.upc, category, sellPrice, TOTAL), (category), ()); 我从查询中收到的表格示例如下: UPC CATEGORY

在Oracle中,我试图获得销售总额,其类型为DECIMAL(5,2)。我还希望SUM'd列返回2位小数

查询如下所示:

SELECT I.upc, category, sellPrice, total, sum(TOTAL*sellPrice)"TOTALVALUE"
...
GROUP BY GROUPING SETS ( (I.upc, category, sellPrice, TOTAL), (category), ());
我从查询中收到的表格示例如下:

UPC   CATEGORY  SELLPRICE TOTAL TOTALVALUE
--- ----------  --------- ----- ----------
  0    Fantasy      20.99     2      41.98
  1    Fantasy      30.99     5     154.95
       Fantasy                      196.93
  2  Classical      10.99     3      32.97
     Classical                       32.97
                                     229.9
请注意,右下角的最后一个值“总计”设置为小数点后1位


我尝试将总和转换为十进制(5,2)类型,但没有效果。任何帮助都将不胜感激。

例如,使用
9999d99
进行字符转换


这里的问题是最后一个数字是零。

好吧,这似乎只是一个显示问题。如果你用5,2来计算,它就是5,2。重要的是以后如何显示它。仅仅因为你的工具没有显示最后的零,并不意味着它不在那里

to_char(sum(TOTAL*sellPrice), 'FM99999990D00')
FM删除前导空格。 9代表该位置的可选数字。 D表示十进制分隔符。 0表示该位置的必填数字

这确保所有数字至少有两个小数


.

请不要发布制表符分隔的代码/etc-它确实与格式不符。很抱歉,我试图让表格从我这边看起来很漂亮。我会把它修好的。谢谢你的链接,我来看看。@danny london:我刚试过,运气不好!如果一切都失败的话,我会在早上试一试。没错,这只是困扰我的一件小事。我认为有一种方法可以按照我希望的方式显示我的数据。