Postgresql PSQL:聚合函数(总和)不工作

Postgresql PSQL:聚合函数(总和)不工作,postgresql,aggregate-functions,psql,Postgresql,Aggregate Functions,Psql,我有这个查询(artist\u money属于money类型,例如$30456.11): 发生什么事了?根据,SUM如果是MONEY类型,则应采用参数 非常感谢 问题在于逗号,而不是货币类型。也许你打算: SELECT SUM(CASE WHEN end_date - date '2015-12-3' <= 28 AND end_date - date '2015-12-03' > 0 THEN artist_money END)

我有这个查询(
artist\u money
属于
money
类型,例如
$30456.11
):

发生什么事了?根据,
SUM
如果是
MONEY
类型,则应采用参数


非常感谢

问题在于逗号,而不是货币类型。也许你打算:

SELECT SUM(CASE WHEN end_date - date '2015-12-3' <= 28 AND end_date - date '2015-12-03' > 0
                THEN artist_money
           END),
       SUM(CASE WHEN date '2015-12-3' - start_date > 28
                THEN artist_money
           END
          ) AS "gonorar"
FROM peacecard 
WHERE artist_id = 12345 AND contract IS NOT NULL;

问题在于逗号,而不是货币类型。也许你打算:

SELECT SUM(CASE WHEN end_date - date '2015-12-3' <= 28 AND end_date - date '2015-12-03' > 0
                THEN artist_money
           END),
       SUM(CASE WHEN date '2015-12-3' - start_date > 28
                THEN artist_money
           END
          ) AS "gonorar"
FROM peacecard 
WHERE artist_id = 12345 AND contract IS NOT NULL;

您试图将两个参数传递给聚合1参数函数

您试图将两个参数传递给聚合1参数函数

它必须是
sum(money)
,而不是
sum(money,money)
。谢谢。它必须是
sum(money)
,而不是
sum(money,money)
。谢谢
SELECT SUM(CASE WHEN end_date - date '2015-12-3' <= 28 AND end_date - date '2015-12-03' > 0
                THEN artist_money
           END),
       SUM(CASE WHEN date '2015-12-3' - start_date > 28
                THEN artist_money
           END
          ) AS "gonorar"
FROM peacecard 
WHERE artist_id = 12345 AND contract IS NOT NULL;
SELECT SUM(CASE WHEN end_date - date '2015-12-3' <= 28 AND end_date - date '2015-12-03' > 0
                THEN artist_money
                WHEN date '2015-12-3' - start_date > 28
                THEN artist_money
           END
          ) AS "gonorar"
FROM peacecard 
WHERE artist_id = 12345 AND contract IS NOT NULL;