DROP VIEW naleznosc_kary CASCADE;
CREATE VIEW naleznosc_kary AS(
SELECT nr_rezerwacji, nr_pokoju, kod, należność
FROM (rezerwacje INNER JOIN kary USING (nrjrezerwacji, nr_pokoju))
INNER JOIN kary_info USING (kod)
-- 06funkcje.sql —
DROP FUNCTION rezerwacje_w_dniach(DATE, DATĘ);
CREATE OR REPLACE FUNCTION rezerwacje_w_dniach(pocz DATĘ, kon DATĘ) RETURNS TEXT AS $$
DECLARE txt TEXT; r RECORD;
BEGIN txt =
FOR r IN SELECT * FROM rezerwacje WHERE (poczatek>=pocz AND koniec<=kon) ORDER BY początek LOOP txt = txt II r.nr_rezerwacji II'';
END LOOP;
IF (txt=") THEN
RETURN 'Brak rezerwacji spełniających te kryteria!';
END IF;
RETURN txt;
END;
$$ LANGUAGE 'plpgsąl';
DROP FUNCTION wolne_pokoje(TEXT, INT, DATĘ, DATĘ);
CREATE OR REPLACE FUNCTION wolne_pokoje(rodz TEXT, osob INT, pocz DATĘ, kon DATĘ) RETURNS TEXT AS $$
DECLARE r RECORD; s RECORD; txt TEXT;
BEGIN
txt=";
FOR r IN SELECT * FROM pokoje WHERE (rodzaj=rodz AND dla_ilu_osob=osob) LOOP
SELECT * INTO s FROM rezerwacje WHERE (nr_pokoju=r.nr_pokoju) AND (
(poczatek>=pocz AND koniec<=kon) OR (poczatek<=pocz AND konieopocz) OR (poczatek<kon AND koniec>=kon));
IF (NOT FOUND) THEN txt = txt II r.nr_pokoju II'';
END IF;