格式化Mysql查询号以返回多个给定格式

时间:2014-02-25 07:08:46

标签: mysql sql

我有这个查询找到两个值的差异,虽然它返回一个圆形值,这正是我不想要的

查询:

SELECT 
    FORMAT(SUM(obq * Rate), 2) - FORMAT(SUM(cbq * Rate), 2) AS variance
FROM
    budget_sheet
WHERE
    project_name = 'Vineyard_Ngong_Villas'
    AND phase = 'Phase_I'
    AND house_no = '002';

结果:

第一部分返回:26,000.00

第二部分:42,700.00

差异:-16而不是-16,700.00

1 个答案:

答案 0 :(得分:0)

您需要在差值上重新应用format

更改

FORMAT( SUM( obq * Rate ), 2 )
- FORMAT( SUM( cbq * Rate ), 2 ) AS variance

FORMAT( FORMAT( SUM( obq * Rate ), 2 )
        - FORMAT( SUM( cbq * Rate ), 2 )
       , 2 ) AS variance

示例

mysql>  select
    ->   format(16,2) s,
    ->   format(2,2) t,
    ->   format(16,2) - format(2,2) d,
    ->   format( format(16,2) - format(2,2), 2 ) fd;
+-------+------+------+-------+
| s     | t    | d    | fd    |
+-------+------+------+-------+
| 16.00 | 2.00 |   14 | 14.00 |
+-------+------+------+-------+