Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja wyliczająca odsetki
Forum PHP.pl > Forum > Bazy danych > MySQL
koleq
Witam. Mam pytanie, jak napisać funkcję wyliczającą odsetki za przetrzymanie wypożyczonej książki. Napisałem perspektywę Statystyka_wyp, w której mam dane klienta, książkę jaką wypożyczył, datę wypożyczenia i oddania oraz odsetki za przetrzymanie książki po dozwolonym terminie - 14 dni. I mi wylicza te odsetki, tylko, że muszę napisać jakąś funkcję IF, ponieważ liczy mi również odsetki, jeżeli ktoś oddał książkę w dopuszczalnym terminie:/. Nie wiem czy można to zrobić bez tworzenia funkcji.

Poniżej kod tworzący tą perspektywę:

create view statystyka_wyp AS select concat(Nazwisko,' ',Imie) AS nazwisko_i_imie, Tytul AS wypozyczyl, Dataw AS dnia, Dataz AS zwrot, (((to_days(Dataz))-(to_days(Dataw)))-14)*0.5 AS odsetki FROM klient k, ksiazka ks, wypozyczalnia w WHERE k.id=w.klient_id AND ks.id=w.ksiazka_id ORDER BY nazwisko;


Czy macie jakieś pomysły jak to zrealizować? byłbym bardzo wdzięczny:)

już nie ważne poradziłem sobie z tym winksmiley.jpg
kitol
Nie podałeś rozwiązania, a może się komuś przydać. Podam moje:

Z IF-em
  1. SELECT IF(DATEDIFF(data_oddania,data_wypozyczenia)>14,DATEDIFF(data_oddania,data_wypozyczenia)*kara_za_dzien,0)


bez IF-a

  1. SELECT (DATEDIFF(data_oddania,data_wypozyczenia)>14)*DATEDIFF(data_oddania,data_wypozyczenia)*kara_za_dzien
koleq
Przepraszam, już podaję: z IF-em

CODE
CREATE VIEW statystyka_wyp AS SELECT concat(Nazwisko,' ',Imie) AS nazwisko_i_imie, Tytul AS wypozyczyl, Dataw AS dnia, Dataz AS zwrot, IF(((to_days(Dataz))-(to_days(Dataw)))>14,(((to_days(Dataz))-(to_days(Dataw)))-14)*0.5,'brak') AS odsetki FROM klient k, ksiazka ks, wypozyczalnia w WHERE k.id=w.klient_id AND ks.id=w.ksiazka_id;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.