Проблема с выводом функции с postgresql - PullRequest
1 голос
/ 26 октября 2019

У меня есть таблица с именем «резерва», и в упражнении меня попросили создать функцию, которая подсчитывает, сколько резервирований с идентификатором ниже идентификатора, который я даю в качестве единственного параметра функции. Они также спрашивают меня, что когда я ввожу «NULL» в качестве параметра, функция должна сделать сумму всех импортов из столбца «импорт» и показать итоговую сумму. У меня половина функции работает. Часть '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", я просто получаю пустую таблицу снет суммы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...