Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我不能在PostgreSQL中使用十进制转换_Sql_Postgresql - Fatal编程技术网

我不能在PostgreSQL中使用十进制转换

我不能在PostgreSQL中使用十进制转换,sql,postgresql,Sql,Postgresql,下一个查询给了我一个错误。我搞不懂。错误显示下一条消息:fl.C为Var,((il.B:decimal-sintaxis error) BBB AS ( SELECT t.A ,count(t.B) as B FROM AAA LEFT JOIN PUBLIC.BBB t ON ( AAA.A= t.A ) WHERE t.C= TIMESTAMP:from - INTERVAL '1 DAY'

下一个查询给了我一个错误。我搞不懂。错误显示下一条消息:fl.C为Var((il.B:decimal-sintaxis error

BBB
AS (
    SELECT t.A  
        ,count(t.B) as B
    FROM AAA
    LEFT JOIN PUBLIC.BBB t ON (
            AAA.A= t.A
            )
    WHERE t.C= TIMESTAMP:from - INTERVAL '1 DAY'
    GROUP BY 1
    )
    ,

SELECT t.Id AS Id
    ,
    t.A AS A
    ,il.B AS B
    ,fl.C AS C
    ,il.B - fl.C AS Var
    ,
    ((il.B::decimal - fl.C::decimal) / fl.C::decimal) * 100::decimal AS D
    ,sum(t.G) AS G
    ,sum(t.H) AS H
FROM AAA t
LEFT JOIN BBB il ON (
        il.E = t.id     
        )
LEFT JOIN CCC fl ON (
        fl.F = t.id
        )
GROUP BY 1
    ,2
    ,3
    ,4
    ,5
    ,6
ORDER BY 1 DESC;
这就像我根本不能使用::十进制转换。如果我删除::十进制转换查询将工作,但返回D的错误值(始终为0)

所有列类型都是整数,除了:from:to是日期时间


它们可能包含null。

什么错误?列类型是什么?如果列已经是数字,为什么转换为十进制?它们是整数?包含null?作为字符串存储的数字,这将是一个设计错误/按列号分组也是一个非常坏的习惯,也不需要使用
100.0
。但即使这样也不需要。如果要避免整数除法,唯一需要的转换是
fl.C
。如果更改操作数的顺序,也可以避免这种转换,例如
(il.B-fl.C)*100.0/fl.C
@PanagiotisKanavos我想我已经发布了您需要的信息。希望这些信息能够澄清情况
时间戳:from
也无效。如果
“from”
是一个时间戳,则不需要任何前缀。如果要指定类型,则只需要使用
时间戳
前缀constant@a_horse_with_no_name我必须这样做,因为我需要它来从中减去1到