Guten Morgen allerseits,
ich sitze mal wieder vor einem SQL-Problem.
Ausgehend von folgendem Szenario:
Tabelle "room":
- room_id
- period1_price_p1
- period1_price_p2
- period1_price_p3
- period1_price_p4
- period2_price_p1
- period2_price_p2
- period2_price_p3
- period2_price_p4
Fuer ein Zimmer koennen fuer jeweils zwei verschiedene Perioden vier verschiedene Preise (1-4 Personen) angegeben werden.
Mein Ziel ist es, aus diesen acht optionalen Werten den niedrigsten zu ermitteln.
Bisher war es so, dass ich meine Abfrage auf zwei Preise beschraenken konnte. Hierfuer habe ich folgendes Query genommen:
SELECT
MIN(
if(
room.period1_price_p1 < room.period2_price_p1,
room.period1_price_p1,
room.period2_price_p1
)
) as lowest_price
FROM
room
Erstens:
Doch wie kann ich das jetzt wie oben beschrieben erweitern, ohne auf dutzend in sich verschachtelte If-Abfragen zugreifen zu muessen (falls das ueberhaupt moeglich ist)?
Zweitens:
Zudem moechte ich gerne, dass das MIN einen NULL-Wert nicht als minimalen Wert sieht, sondern im Falle eines NULLS den entsprechenden anderen/naechst hoeheren Wert zurueckliefert. Gibt es auch hierfuer was Schickes?
Bin fuer jeden Tip dankbar!
MfG
Peter Nack