Witam.
Mam pewien problem do rozwiązania, więc zwracam się do Was. Byłbym wdzięczny za pomoc.
Stworzyłem bazę danych (wypożyczalnia). Potrzebuję funkcję, która w przypadku nieoddania rzeczy po dwóch tygodniach naliczy 10zł kary za każdy dzień spóźnienia. Dopiero się uczę i nie bardzo wiem, jakie warunki założyć.
Mógłby mi ktoś napisać tę funkcję? Dzięki wielkie!
Przede wszystkim najlepiej podaj część struktury bazy ( jak wyglądają tabele, które chcesz wykorzystać ). I potem zacznij od tego: http://www.codeproject.com/Articles/33734/How-to-write-PL-pgSQL-functions-for-PostgreSQL-8-3 . CodeProject to ogromne źródło przykładów i wiedzy. Nie jednemu programiście na pewno wiele razy uratowało tyłek.
Pozdrawiam
W międzyczasie zrobiłem coś takiego. W dobrym kierunku idę? Może mi to ktoś zweryfikować i poprawić ewentualnie? Średnio mi to wychodzi...Dzięki.
CREATE FUNCTION OplataZaZwloke(INT) RETURNS INT
LANGUAGE plpgsql
AS
DECLARE
OplataZaZwloke INT;
BEGIN
SELECT Wypozyczenie.DataWypozyczenia, (DATE()-(DataWypozyczenia+14))*10 AS OplataZaZwloke
FROM Wypozyczenie
WHERE Wypozyczenie.kto_wypozyczyl = $1;
RETURN OplataZaZwloke;
END;
';
Czyli najpierw stworzyć funkcję, a potem triggera odwołującego do tej funkcji? Czytam o tych triggerach, nie mam pojęcia, jak to zrobić. :( Wiem, że to bezczelne, ale nie znalazłby się chętny do napisania mi tego? Sam chyba tego nie ogarnę...Dzięki wielkie!
Hm, coś takiego? :)
CREATE FUNCTION OplataZaZwloke(INT) RETURNS INT
AS
$BODY$
DECLARE
wyliczona INT;
BEGIN
SELECT (DATE()-(DataWypozyczenia+14))*10
INTO wyliczona
FROM Wypozyczenie
WHERE Wypozyczenie.kto_wypozyczyl = $1;
RETURN wyliczona;
END;
$BODY$
LANGUAGE plpgsql
COST 10;