Witam,
Mam takie tabele:

tabela:
samochod
  1. id marka model nr_rejestracyjny stawka_dobowa id_wypozyczalnia
  2. 1 VW GOLF GG 225544 250 1
  3. 2 FIAT PUNTO 3 WW 569778 100 1
  4. 3 Audi A6 Exclusive TR 123456 1000 2
  5. 4 Mercedes E W211 ER 98765 1000 2


wypozyczalnia
  1. id nazwa adres
  2. 1 Wyp 1 ulica 12, 80-800 miasto
  3. 2 Wyp 2 ulica2 22, 50-555 miasto2



wypozyczenie
  1. id id_klient id_samochod data_od data_do stawka_dobowa
  2. 1 1 1 2008-07-14 2008-07-19 1250
  3. 2 3 3 2008-07-26 2008-07-31 5000
  4. 3 1 2 2008-07-28 2008-08-04 1200
  5. 4 1 2 2008-07-06 2008-07-10 500


I potrzebuję napisać zapytanie które będzie łączyło te trzy tabele:
Lista samochodów dostępnych/wypożyczonych. Pola nagłówków listy: marka, model, status (wypożyczony/dostępny i w jakiej wypożyczalni â�� jej nazwa),


Zacząłem pisać i napisałem tyle:

  1. SELECT wypa.nazwa, sam.marka, sam.model, (tutaj trzecia kolumna o nazwie STATUS pewnie tutaj muszą byc kalkulacje tego co ma BYć wpisane w kolumnę
  2. WHERE now( ) >= wype.data_od
  3. AND now( ) <= wype.data_do
  4. ) AS STATUS
  5. FROM wypozyczalnia AS wypa, wypozyczenie AS wype, samochod AS sam
  6.  
  7. GROUP BY sam.id



Ale to mi oczywiście nie działa. Chyba bardziej to wstawiam żeby pokazać że nie idę na łatwiznę i trochę nad tym siedziałem. Ale tu bardziej doświadczonej głowy w SQL potrzeba.

Potrzebowałbym naprowadzenia:
wydaje mi się że trzeba tutaj jakiś if else napisać który będzie określał jeżeli dzisiejsza data zawiera się w przedziale pomiędzy datami data_od, data_do to wstaw do kolumny status wypozyczony i znajdz w jakiej wypozyczalni jezeli nie to dostępny.

Ale jak wypełnić taką kolumnę takimi danymi nie wiem jak to napisać to if else.

Więc wykoncypowałem. Zapytanie powinno wyglądać tak:
  1. SELECT sam.marka, sam.model, wy.nazwa AS wypozyczalnia, IF( now() BETWEEN wyp.data_od AND wyp.data_do,'wypozyczony','dostepny') AS STATUS
  2. FROM wypozyczenie AS wyp, samochod AS sam, wypozyczalnia AS wy
  3. WHERE sam.id = wyp.id
  4. AND wy.id = sam.id_wypozyczalnia
  5. ;
  6.  
  7.  
  8.  



Pozdrawiam,
Darek