mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-13 13:02:18 +00:00
37 lines
1.4 KiB
PL/PgSQL
37 lines
1.4 KiB
PL/PgSQL
CREATE OR REPLACE FUNCTION NearestWintersemester(var_entfernung integer) RETURNS varchar(32) AS $$
|
|
DECLARE res varchar(32);
|
|
BEGIN
|
|
WITH nearestws AS
|
|
(
|
|
SELECT studiensemester_kurzbz, start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz LIKE 'W%' AND ende>=now() ORDER BY start DESC LIMIT 1
|
|
)
|
|
SELECT studiensemester_kurzbz into res
|
|
FROM
|
|
(
|
|
SELECT studiensemester_kurzbz, 0 as "entfernung" FROM nearestws
|
|
UNION
|
|
SELECT studiensemester_kurzbz, rank() over(order by start desc) as "entfernung" FROM public.tbl_studiensemester where start>(SELECT start FROM nearestws)
|
|
UNION
|
|
SELECT studiensemester_kurzbz, (-1 * rank() over(order by start desc)) as "entfernung" FROM public.tbl_studiensemester WHERE start<(SELECT start FROM nearestws)
|
|
) x where entfernung=var_entfernung;
|
|
|
|
return res;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION CurrentSemester() RETURNS varchar(32) AS $$
|
|
DECLARE res varchar(32);
|
|
BEGIN
|
|
SELECT studiensemester_kurzbz into res FROM public.tbl_studiensemester WHERE start<=now() AND ende>=now() ORDER BY start DESC LIMIT 1;
|
|
return res;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|
|
|
|
CREATE OR REPLACE FUNCTION LastActiveSemester() RETURNS varchar(32) AS $$
|
|
DECLARE res varchar(32);
|
|
BEGIN
|
|
SELECT studiensemester_kurzbz into res FROM public.tbl_studiensemester WHERE start<=now() ORDER BY start DESC LIMIT 1;
|
|
return res;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|