用PostgreSQL输出函数的问题

时间:2019-10-26 14:06:19

标签: function psql

我有一个名为“ reserves”的表,练习要求我创建一个函数,该函数计算id小于我作为函数唯一参数给出的id的保留数。他们还问我,当我引入'NULL'作为参数时,该函数必须对'import'列中的所有导入求和并显示总数。我有一半的职能工作。 NULL部分是不起作用的部分。

现在我有了这个

CREATE OR REPLACE FUNCTION compta_reserves(int) RETURNS int AS $$
DECLARE
num_reserves INT:=(SELECT COUNT(*) FROM mobilitat.reserves);
id ALIAS FOR $1;
comptador INT:=0;
i INT:=1;
import_total double precision:=((SELECT SUM(import) FROM mobilitat.reserves WHERE import<60)::INT);

BEGIN
IF (id=NULL) THEN
      RETURN import_total AS int;
ELSE
      WHILE i<num_reserves LOOP
         IF (SELECT id_reserva FROM mobilitat.reserves WHERE id_reserva=i)<id  THEN
        IF (SELECT import FROM mobilitat.reserves WHERE id_reserva=i)<60 THEN
                comptador=comptador+1;
            END IF;
     END IF;
         i=i+1;
      END LOOP;
      RETURN comptador;
END IF;
END;
$$ LANGUAGE PLPGSQL;

当我使用'NULL'参数运行该函数时,我只会得到一个空表,没有总和。

0 个答案:

没有答案