Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему созданная функция в postgresql возвращает некорректное значение?

Mtrix Ученик (35), на голосовании 5 месяцев назад
Привет! Есть запрос:
Создать и выполнить функцию, в которой по номеру рейса вывести количество свободных мест.

КОД ФУНКЦИИ:
 
create function get_free_seat_of_flighs(flight_number character) returns int as
$$
declare TOTAL_SEAT int;
declare TOTAL_FREE_SEAT int;
begin
select count(*) into TOTAL_SEAT
from seats s
inner join flights f ON s.aircraft_code = f.aircraft_code
where f.flight_no = flight_number;

select count(*) into TOTAL_FREE_SEAT
from boarding_passes bd
inner join flights f ON bd.flight_id = f.flight_id
where f.flight_no = flight_number;

return TOTAL_SEAT - TOTAL_FREE_SEAT;
end
$$
language 'plpgsql'
Функция принимает номеру рейса, в моем случае PG0134

SELECT get_free_seat_of_flighs('PG0134')

Но почему функция возвращает 5354 разве не слишком много места для одного рейса ? Или может я не понимаю как работает аэропорт ?

РЕЙСЫ ЗАПИСАННЫЕ В Таблицу flights:


ДИАГРАММА:
Голосование за лучший ответ
Василий Полубнев Просветленный (23522) 6 месяцев назад
Входной параметр точно должен быть character??? Может быть, лучше text или varchar?
MtrixУченик (35) 6 месяцев назад
Если я сделаю varchar, то проблема все ровно останется
Василий ПолубневПросветленный (23522) 6 месяцев назад
В постгре есть типы CHAR, CHARACTER VARYING(N), CHARACTER(N), CHAR(N). Типа CHARACTER просто нет.
Похожие вопросы