首页 > 解决方案 > 如何在 PostgreSQL 中显示货币价值

问题描述

我的数据库查询如下,但我仍然无法正确显示货币值。请帮我。

SELECT  SUM (orders.quantity * products.price) as total,
to_char((orders.quantity * products.price), '$99,999,999.99') AS money
    FROM
       orders
       inner join products on products.id = orders.products_id
       inner join customers on customers.id = orders.customers_id
    WHERE order_date BETWEEN CURRENT_DATE - INTERVAL '30 days'
      AND CURRENT_DATE + INTERVAL '1 days';

我的问题是我收到此错误:

ERROR: column "orders.quantity" must appear in the GROUP BY clause or be used in an aggregate function

标签: databasepostgresqltypescurrency

解决方案


您并没有真正说出您的问题是什么,但是如果您使用FM格式修饰符,如

SELECT to_char(12345.67, '$99,999,999.99FM');

  to_char   
------------
 $12,345.67
(1 row)

结果可能更符合您的喜好。

要使查询正常工作,GROUP BY请在末尾添加一个子句,例如

... GROUP BY money

推荐阅读