Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

funkcja naliczająca karę na zwłokę psql

kichawa7 17 Kwi 2013 10:50 927 9
  • #1 17 Kwi 2013 10:50
    kichawa7
    Poziom 12  

    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!

    0 9
  • #2 17 Kwi 2013 12:53
    PRL
    Poziom 33  

    Kod: sql
    Zaloguj się, aby zobaczyć kod

    0
  • #3 17 Kwi 2013 15:08
    kichawa7
    Poziom 12  

    I to wszystko juz? Nie trzeba zadeklarowac osoby, albo rzeczy I tabeli, gdzie ta rzecz sie znajduje? Wypozyczana ma byc plyta. Dzieki I tak. :D

    0
  • #4 17 Kwi 2013 15:50
    PRL
    Poziom 33  

    To zależy co masz już i w jaki sposób zrobione...
    To jest ostatnia rzecz, którą potrzebujesz do obliczania opłaty za spóźnienie, bo o to pytałeś.
    W czym tę bazę robisz?

    0
  • #5 17 Kwi 2013 16:29
    kichawa7
    Poziom 12  

    putty, psql. Mam stworzoną bazę, a w bazie tabele klient, kto_wypozyczyl, co_wypozyczyl, ksiazki, plyty. I kolejnym krokiem jest ta funkcja. Mam np. coś takiego, odnośnie rabatu. Ta z karą nie powinna wyglądać jakoś podobnie? Sam nie wiem.

    CREATE FUNCTION retrabat(int) RETURNS int
    LANGUAGE plpgsql
    AS
    '
    declare
    suma float;
    rabat int;
    begin
    select sum(cena) into suma from plyta,wypozyczenie where
    plyta.numer=wypozyczenie.co_wypozyczyl AND
    wypozyczenie.kto_wypozyczyl = $1;
    if suma > 30
    then rabat = 10;
    else rabat = 0;
    end if;
    return rabat;
    end;
    ';

    0
  • #6 17 Kwi 2013 16:50
    PRL
    Poziom 33  

    Skoro sam napisałeś funkcję do obliczania rabatu, to nie rozumiem dlaczego masz problem z tak prostą funkcją obliczania opłaty za zwłokę...

    0
  • #7 17 Kwi 2013 17:07
    kichawa7
    Poziom 12  

    Bo nie jestem jej autorem...:( Wydaje mi się, że ta z karą powinna wyglądać podobnie. Ale jak? Słabo ogarniam te warunki. Czyli to, co podałeś, nie jest do końca poprawne?

    0
  • #8 17 Kwi 2013 17:19
    PRL
    Poziom 33  

    Nie znam PGSQL, ale bazując na funkcji rabatu sprawdź to lub poczekaj, aż odezwie się ktoś, kto w Postgresie pisze.:)


    Kod: sql
    Zaloguj się, aby zobaczyć kod

    0
  • #9 17 Kwi 2013 17:20
    kichawa7
    Poziom 12  

    Dziękuję! Poczekam, może ktoś inny się odezwie :)

    0
  • #10 18 Kwi 2013 20:49
    kichawa7
    Poziom 12  

    Kurcze, to jednak nie ma tak wyglądać...
    Ma być zrobione na triggerach.
    Funkcja nalicza karę, a ta z góry ją oblicza. Pomoże ktoś? :(

    0